|
Впроцессоре 8088 имеется четыре 16-битовых регистров, которые мо-
гут приниматьучастие в адресации операндов.Один из них является
одновременно регистром общего
назначения- регистр базы BX. Другие
Microsoft (R) Macro Assembler Version 5.00 11/17/88 21:42:25
Фиг 3.2 Адресация операндов
Page1-1
PAGE,132
TITLEФиг 3.2 Адресация операндов
0000CODESEGMENT
ASSUME CS:CODE,DS:CODE,SS:CODE
0123ORG123H
0123????OPNDDW?
0200ORG200H
020043INCBX ;
Увеличение регистра
0201FF 06 0123 RINCOPND;
Увеличение ячейки памяти
0205FF 07INCWORD PTR
[BX]; Увеличение слова памяти
0207FF 87 0123 RINC[OPND+BX];
Смещение плюс индекс
020BFF 84 0123 RINC[OPND+SI]
020FFF 84 0123 RINCOPND[SI];
Другой способ - тот же результат
0213FF 85 0123 RINCOPND + [DI]
0217FF 86 0123 RINC[OPND] + [BP]
021BFF 00INCWORD PTR [BX +
SI]; База плюс индекс
021DFF 03INCWORD PTR [BP] +
[DI]
021FFF 81 0123 RINC[OPND + BX + DI] ; База +
индекс + смещение
0223FF 82 0123 RINCOPND[BP][SI]
0227CODEENDS
END
Фиг 3.2 Адресация операндов
три- этоуказатель базы (Base Poiner- BP),индекс источника
(Source Index -SI) и индекс назначения (DestinationIndex - DI).
ПрограммаможетиспользоватьрегистрыBP,SIиDI в качестве
16-битовых операндов, но отдельные байты в
них недоступны. Основное
назначениеэтихрегистров-поставлять16-битовыезначения,
используемые в формировании адресов
операндов.
Каждая команда в 8088 задает для
выполнения некоторую операцию.
Разные операциимогут иметь отнуля до
двухоперандов. Например,
командеразрешенияпрерыванийSetInterrupt(STI)операнды не
нужны. Команда увеличения (INC)требует, чтобы программист опреде-
лилодин операнд,- регистрили ячейкупамяти, - который должен
быть увеличенна еденицу. Команда ADD(сложение) должна иметь два
операнда -складываемые
величины. Некоторыекоманды неявно
задают
расположение операнда, но большинство
команд позволяют программисту
выбиратьв качествеоперанда регистрили ячейкупамяти.
Еслив
качестве операндавыбран регистр, топрограммисту остается только
указать его имя. Для указания же в
качестве операнда участка памяти
у вас есть много различных способов.
Хорошимпримером служиткоманда INC.Она имеетединственный
операнд.На Фиг.3.2 изображенлистинг ассемблерас несколькими
различными вариантамикоманды INC. Перваякоманда INC называетв
качестве операнда регистр BX.
Заметим,что в поле операндов в этом
случае кроме BX ничего нет. Остальные
команды в примере указывают в
качестве операнда ячеку памяти. Ихотя в них иногда появляется имя
регистра BX,он не является здесьсамим
операндом, а используется
для определения его адреса.
|