На главную Назад
Добро пожаловать, уважаемый посетитель!

Посколькувычисление дляоперандаадреса,состоящего избазы и

индекса, встречается довольно часто,среди способов адресации 8088

естьтакие, чтопозволяют автоматическипроизводить идексирующее

сложение.Вместовыполнениявсехвычислений,программаможет

определить только величину 2*I и поместить ее в регистр BX. Команда

 

INC[OPND + BX]

 

вычисляет исполнительный адрес через сложение адреса базыOPNDсо

значениеминдекса в BX. Этой командой достигается тот же самый ре-

зультат что и в предыдущем случае, но меньшим числом команд.Обра-

тите внимание, что в этой команде ассемблеру не требуется подсказка

WORDPTR,потому что ассемблер уже знает, что OPND является пере-

менной типа WORD. Оператор PTR требуется только в тех случаях, ког-

да ассемблер не может определить тип операнда.

Любой изчетырех адресных регистровможет быть использованв

качестве индексапри базе. Фиг.3.2 показывает возможныеспособы

адресации черезбазу и индекс. Вывидите, что ассемблер допускает

несколько способовзаписи операции адресации.В группе, состоящей

изпяти командна Фиг.3.2,вовсех командахадрес базыOPND

складывается с указанным рядом индексным регистром.

Надоотметить,чтовкоманде,содержащейбазисныйадрес,

регистрне обязательнодолжен содержатьименно значение индекса.

Действительно, поскольку BXназывается базисным регистром, кажется

разумным воспользоваться противоположнойконфигурацией. В качестве

примерапредположим,чтопрограммаиспользуетмножество разных

векторов с одинаковой длинойи размером элементов. Такую структуру

можетиметь,например,классныйжурнал,вкоторомвекторам

соответствуютнаборыоценокзакаждуюконтрольнуюработу.

Программа, вычисляющая оценку пятого ученика в классе по I-й работе

будетиметьужеизвестноезначениеиндекса(5) а базу (вектор

даннойконтрольнойработы)-вычисляемуювходевыполнения

программы.

Индексный регистр может содержать как адрес базы вектора, так и

значениеиндексаввекторе.Посколькуконстантноезначениев

команде можетоказаться и базойи индексом (иливовсе чем-нибудь

известным только программисту), то это значение называют смещением.

Оно соответствуетрасстояню или смещениюот адреса врегистре до

исполнительного адреса, по которому происходит обращение.


 

Mail.ru