Одноадресные команды

При выполнении одноадресной команды используется один адрес, по которому до выполнения операции находится операнд, а после выполнения операции записывается результат (см. табл. 2.3).

Таблица 2.3

No п/пОперацияФормат данных
БайтСловоДвойное слово
1Сложение с единицейINCBINC-
2Вычитание с единицейDECBDEC-
3ОбнулениеCLRBCLR-
4ИнверсияNOTBNOT-
5Изменение знакаNEGBNEG-
6Рсширение со знакомEXBTEXT

В одноадресных командах используется прямая регистровая адресация.

INCB CL; CL <- CL+1

DEC AX; AX <- AX-1

Двухадресные команды

При выполнении операции с двумя операндами (двухадресная команда) по первому адресу до выполнения операции находится первый операнд, а после выполнения операции записывается результат.

Для указания местоположений первого операнда и результата используется прямая регистровая адресация. По другому адресу находится второй операнд, для указания его местоположения могут быть использованы все шесть способов адресации (см. табл. 2.4).

Таблица 2.4

No п/пОперацияФормат данных
БайтСловоДвойное слово
1СложениеADDBADD-
2Сложение с переносомADDCBADDC-
3ВычитаниеSUBBSUB-
4Вычитание с займомSUBCBSUBC-
5Логическое умножениеANDBAND-
6Логическое сложениеORBOR-
7Исключающее ИЛИXORBXOR-
8СравнениеCMPBCMPCMPL
9Сдвиг влевоSHLBSHLSHLL
10Сдвиг вправоSHRBSHRSHRL
11Арифметический сдвиг вправоSHRABSHRASHRAL
12Умножение числа без знакаMULUBMULU
13Умножение числа со знакомMULBMUL
14Деление числа без знакаDIVUBDIVU
15Деление числа со знакомDIVBNORML DIV
16Нормализация--NORML

ADD AX,BX; AX <- (AX+BX)

ST AX, TABLE[BX]; MEM_WORD (TABLE+BX) <- AX

Трехадресные команды

С помощью трехадресных команд выполняются арифметические и логические операции с двумя операндами (см. табл. 2.5). При этом используется три адреса. По первому адресу записывается результат операции, по второму и третьему - первый и второй операнд соответственно.

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

Таблица 2.5
No п/пОперацияФормат данных
БайтСловоДвойное слово
1СложениеADDBADD-
2ВычитаниеSUBBSUB-
3Логическое умножениеANDBAND-
4Умножение числа без знакомMULUBMULU
5Умножение числа со знакомMULBMUL

MULB AX,BL,3[CX]AX <- BL * MEM_BYTE (CX+3);
(MULB_3op)
AND AX,BX,TABLE[CX]AX <- BX and MEM_WORD(TABLE +CX];
(AND_3op)

<<< Содержание >>>