Логические команды
Арифметические команды
Команды пересылок
Команды пересылок являются эквивалентами операций присваивания в языках высокого уровня. Команды пересылки данных не изменяют состояния флагов независимо от результата операции.
MOV - переслать значение второго операнда в первый согласно способам адресации. Пример:
MOV AX, BX
MOV VAR, AX
MOV AX, [BX]
MOV CX, 10
LEA (Load effective address) присваивает значение смещения второго аргумента первому аргументу. Второй аргумент может быть не только переменной, но и некоторым способом адресации. Пример:
LEA BX, VAR
LEA DX, [BX]
PUSH записывает на вершину стека значение операнда, и изменяет значение регистра SP на величину равную размеру операнда. Так, запись слова в стек уменьшает значение регистра SP на 2. Операндом команды может быть только слово и двойное слово. Пример:
PUSH BX
PUSH CS
POP записывает в указанный операнд значение находящееся на вершине стека, и увеличивает значение регистра SP на размер операнда. Пример:
POP AX
POP DS
Команда XCHG (Exchange) выполняет обмен значений двух операндов. Пример:
XCHG AX, BX
XCHG AX, VAR
ADD - сложить содержимое двух операндов и результат оставить в приемнике. Синтаксис согласно методам адресации. Команда не различает чисел со знаком и без знака, но операции со знаком производятся корректно. Пример:
ADD AX, BX ; AX=AX+BX
ADD BX, 5
ADD CX, VAR
ADD AL, [BX]
SUB – вычитает второй операнд из первого, и помещает значение в первый операнд. Пример:
SUB AX, BX ; AX=AX-BX
SUB AX, 5
MUL – беззнаковое умножение регистра AL, AX на указанный операнд, в зависимости от размера операнда. И помещает результат в AX, DX:AX соответственно. Команда IMUL производит знаковое умножение операндов. Пример:
MUL BX ; DX:AX=AX*BX)
MUL 5
DIV – целочисленное беззнаковое деление аккумулятора на операнд. Если происходит деление байтов — частное в AL, остаток в AH. При делении слов — частное в AX, остаток в DX. Для деления чисел со знаком используется команда IDIV. Пример:
DIV BX
IDIV DH
INC – увеличивает операнд на 1. Пример:
INC AX
INC VAR
DEC – уменьшает операнд на 1. Пример:
DEC AX
DEC VAR
CMP – сравнение двух операндов. Команда не изменяет содержимое регистров, состояние флагов после выполнения этой команды эквивалентно выполнению команды SUB. Пример:
CMP AX, 2
CMP DX, VAR
AND – побитовое логическое «И». Пример:
AND AL, 01110101b
AND AX, [BX]
OR – побитовое логическое «ИЛИ». Пример:
OR AL, 01110101b
OR AX, [BX]
XOR – побитовое логическое «исключающее ИЛИ»
XOR AL, AL
XOR AX, [BX]
NOT – побитовое логическое «НЕ»
NOT AX
NOT VAR
TEST – команда не изменяет содержимое операндов, а лишь выставляет флаги эквивалентно выполнению операции AND.
TEST AX, AX
TEST AX, VAR