Программирование на JAVA

В нашем случае в ин­дексном регистре содержится значение 40 и при этом выполняется обращение к двойному слову по адресу 1360 (то есть 1000 + 200 + 4 х 40). Данный операнд за­гружается в регистр ЕАХ командой

MOV EAX,[EBP+ESI*4+200]

Использование коэффициента масштабирования облегчает доступ к последо­вательным двойным словам списка в программном цикле, поскольку в этом слу­чае на каждом шаге цикла достаточно увеличивать значение индексного регистра на 1. Мы подробно обсудили два способа адресации, и теперь вы сможете понять, как функционируют сходные режимы адресации — индексная со смещением и ба­зовая индексная.


Рис. 5.7. Пример типа адресации в архитектуре IA-32.

Адресация базовая индексная со смещением, заданная как [EBP+ESI*4+200]

Напоследок хотелось бы высказать одно замечание. Может показаться, что ре­жим базовой адресации со смещением (табл. 5.1) является излишним, поскольку тот же результат можно получить при помощи индексной адресации со смещени­ем с коэффициентом масштабирования 1. Однако команда с использованием пер­вого режима на один байт короче. Кроме того, величина смещения во втором слу­чае может задаваться только 32-разрядным числом.


<< назад вперед >>