Что означает "[es:eax]" в "mov byte [es:eax], dl" в ассемблере NASM x86?
Может кто-нибудь объяснить, что
mov byte [es:eax], dl
будет означать в NASM x86 ассемблер?
В частности, часть [es:eax].
1 ответ
Решение
Синтаксис [es:eax] указывает на косвенный ход, в котором комбинация регистров es: eax содержит адрес, и байт, сохраненный в регистре dl, будет сохранен по этому адресу.
es - это регистр сегментов, а eax - регистр общего назначения, используемый для расчета адресов. Я предполагаю, что это 16-битная модель адреса, поэтому комбинация регистра сегмента и регистра eax обеспечивает полный 32-битный адрес для дальнего указателя.
Смотрите эту веб-страницу с основными инструкциями и адресацией.
И эта веб-страница о действующих адресах, а также об адресах.