Режим адресации в IA-32

Я искал режимы адресации в IA-32, но я не видел ни веб-сайта, ни статьи, в которых бы просто объяснялись режимы адресации. Мне нужна статья или что-то, что объясняет вопрос просто с помощью некоторой картины памяти во время ее изменения и указания режима адреса с помощью картинок.

Я знаю, что в IA-32 общая форма адресации имеет следующую форму:

Сегмент + База + (индекс * шкала) + смещение

Я хочу знать точное значение смещения, масштаба, индекса и, наконец, основы. Поскольку я также не знаю английского языка, я вынужден искать их, но я не нашел технического значения слов для этого случая (я имею в виду язык ассемблера).

Наконец, я хочу, чтобы объяснение режимов адресации в IA-32 было просто и предпочтительно представлено картинками о памяти и ее смещении и...

Я изучаю язык программирования на ассемблере по Руководству по программированию на ассемблере в книге Linux.

Тогда спасибо.

1 ответ

Решение

Нашел это изображение из презентации Power Point.

Режимы адресации

Это означает, что вы можете иметь такие адреса, как [eax + ecx * 2 + 100], Вам не обязательно использовать все эти поля. Сегментный регистр выбирается автоматически в зависимости от рассматриваемой инструкции или с префиксом переопределения сегмента (например, ds:, cs:). Значение регистра сегмента сдвигается на 4 бита влево и добавляется к адресу, вычисленному из основания, индекса, масштаба и смещения, чтобы получить окончательный адрес.

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