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