Меню сайта

Урок 22. Адресация через базу и смещение

Поскольку -вычисление для — операнда — адреса, -состоящего из — базы и
— — — индекса, встречается довольно часто, — среди способов адресации 8088
— — — есть -такие, что — позволяютавтоматически — производить идексирующее
— — — сложение. -Вместо — выполнения — — всех -вычислений, — программа — может
— — — определить только величину 2*I и поместитьее в регистр BX. Команда

— — — — — INC — — -[OPND + BX]

— — — вычисляет исполнительный адрес черезсложение адреса базы — OPND — со
— — — значением -индекса в BX. Этой командой достигается тот же самый ре-
— — — зультат что и в предыдущем случае, номеньшим числом команд. — Обра-
— — — тите внимание, что в этой командеассемблеру не требуется подсказка
— — — WORD -PTR, — — — потому что ассемблер ужезнает, что OPND является пере-
— — — менной типа WORD. Оператор PTR требуетсятолько в тех случаях, ког-
— — — да ассемблер не может определить типоперанда.
— — — — — Любой из -четырех адресных регистров — можетбыть использован — в
— — — качестве индекса — при базе. Фиг. — 3.2показывает возможные — — — способы
— — — адресации через — базу и индекс. Вы — — — видите,что ассемблер допускает
— — — несколько способов — записи операции адресации. -В группе, состоящей
— — — из — — — — — пятикоманд — на Фиг. — 3.2, -во — — — — — всех командах — адрес базы -OPND
— — — складывается с указанным рядом индекснымрегистром.
— — — — — Надо -отметить, — что — в -команде, — содержащей — базисный -адрес,
— — — регистр -не обязательно — долженсодержать — именно значение индекса.
— — — Действительно, поскольку BX — называется базисным регистром, кажется
— — — разумным воспользоватьсяпротивоположной — конфигурацией. Вкачестве
— — — примера -предположим, — что — — — — — программа -использует — множество разных
— — — векторов с одинаковой длиной — и размером элементов. Такую структуру
— — — может -иметь, — — например, — классный -журнал, — — в — котором -векторам
— — — соответствуют — — наборы — — оценок — — за — -каждую — контрольную — — — работу.
— — — Программа, вычисляющая оценку пятогоученика в классе по I-й работе
— — — будет -иметь — уже — известное -значение — индекса — (5) а базу (вектор
— — — данной -контрольной — — работы) — — -вычисляемую — — в — ходе -выполнения
— — — программы.
— — — — — Индексный регистр может содержать какадрес базы вектора, так и
— — — значение -индекса — в — векторе. -Поскольку — константное — значение -в
— — — команде может — оказаться и базой — ииндексом (или — вовсе чем-нибудь
— — — известным только программисту), то этозначение называют смещением.
— — — Оно соответствует — расстояню или смещению — от адреса в -регистре до
— — — исполнительного адреса, по которомупроисходит обращение.

Категория: Программирование на Ассемблере | Дата: 20.02.13

Меню раздела
Блок