Одноадресные команды
При выполнении одноадресной команды используется один адрес, по которому до выполнения операции находится операнд, а после выполнения операции записывается результат (см. табл. 2.3).
Таблица 2.3
No п/п | Операция | Формат данных |
Байт | Слово | Двойное слово |
1 | Сложение с единицей | INCB | INC | - |
2 | Вычитание с единицей | DECB | DEC | - |
3 | Обнуление | CLRB | CLR | - |
4 | Инверсия | NOTB | NOT | - |
5 | Изменение знака | NEGB | NEG | - |
6 | Рсширение со знаком | EXBT | EXT |
В одноадресных командах используется прямая регистровая адресация.
INCB CL; CL <- CL+1
DEC AX; AX <- AX-1
Двухадресные команды
При выполнении операции с двумя операндами (двухадресная команда) по первому адресу до выполнения операции находится первый операнд, а после выполнения операции записывается результат.
Для указания местоположений первого операнда и результата используется прямая регистровая адресация. По другому адресу находится второй операнд, для указания его местоположения могут быть использованы все шесть способов адресации (см. табл. 2.4).
Таблица 2.4
No п/п | Операция | Формат данных |
Байт | Слово | Двойное слово |
1 | Сложение | ADDB | ADD | - |
2 | Сложение с переносом | ADDCB | ADDC | - |
3 | Вычитание | SUBB | SUB | - |
4 | Вычитание с займом | SUBCB | SUBC | - |
5 | Логическое умножение | ANDB | AND | - |
6 | Логическое сложение | ORB | OR | - |
7 | Исключающее ИЛИ | XORB | XOR | - |
8 | Сравнение | CMPB | CMP | CMPL |
9 | Сдвиг влево | SHLB | SHL | SHLL |
10 | Сдвиг вправо | SHRB | SHR | SHRL |
11 | Арифметический сдвиг вправо | SHRAB | SHRA | SHRAL |
12 | Умножение числа без знака | MULUB | MULU |
13 | Умножение числа со знаком | MULB | MUL |
14 | Деление числа без знака | DIVUB | DIVU |
15 | Деление числа со знаком | DIVB | NORML DIV |
16 | Нормализация | - | - | NORML |
ADD AX,BX; AX <- (AX+BX)
ST AX, TABLE[BX]; MEM_WORD (TABLE+BX) <- AX
Трехадресные команды
С помощью трехадресных команд выполняются арифметические и логические операции с двумя операндами (см. табл. 2.5). При этом используется три адреса. По первому адресу записывается результат операции, по второму и третьему - первый и второй операнд соответственно.
В трехадресных командах для указания местоположений первого операнда и результата, имеющих разные адреса, используется прямая регистровая адресация, а для указания местоположения второго операнда могут быть использованы все шесть способов адресации.
Таблица 2.5
No п/п | Операция | Формат данных |
Байт | Слово | Двойное слово |
1 | Сложение | ADDB | ADD | - |
2 | Вычитание | SUBB | SUB | - |
3 | Логическое умножение | ANDB | AND | - |
4 | Умножение числа без знаком | MULUB | MULU |
5 | Умножение числа со знаком | MULB | MUL |
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)
|
<<<
Содержание
>>>
|