Что означает "[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-битный адрес для дальнего указателя.

Смотрите эту веб-страницу с основными инструкциями и адресацией.

И эта веб-страница о действующих адресах, а также об адресах.

Другие вопросы по тегам