 СМР - Сравнение операндов
CMPXCHG -Сравнение и обмен операндами
CMPXCHG8B - Сравнение и обмен счетверенными словами (8 байтов)
Умножение:
MUL - Беззнаковое умножение
IMUL - Знаковое (целочисленное) умножение
ААМ - ASCII-коррекция результата умножения
Деление:
DIV - Беззнаковое деление
IDIV - Знаковое (целочисленное) деление
AAD - ASCII-коррекция результата деления
Изменение разрядности путем расширения знака:
CBW - Преобразование байта (AL) в слово (АХ)
CWDE - Преобразование слова (АХ) в двойное слово (ЕАХ)
CWD - Преобразование слова (АХ) в двойное слово (DX, АХ)
CDQ - Преобразование двойного слова (ЕАХ) в учетверенное слово (EDX, ЕАХ)
Логические операции
NOT- Инверсия операнда (логическое НЕ)
AND - Конъюнкция операндов (логическое И)
OR-Дизъюнкция операндов (логическое ИЛИ)
XOR - Неравнозначность операндов (исключающее ИЛИ)
TEST-Логическое сравнение операндов (установка признаков ZF, SF, PF)
Сдвиги
SHL/SAL - Сдвиг влево
SHR-Логический сдвиг вправо
SAR-Арифметический сдвиг вправо
SHLD -Двухоперандный сдвиг влево
SHRD -Двухоперандный сдвиг вправо
ROL - Циклический сдвиг влево
ROR - Циклический сдвиг вправо
RCL - Циклический сдвиг влево через перенос (CF)
RCR - Циклический сдвиг вправо через перенос (CF)
Операции с битами и байтами
ВТ- Проверка бита
BTS - Проверка и установка бита
BTR - Проверка и сброс бита
ВТС - Проверка и инверсия бита
BSF - Прямое сканирование битов
BSR - Обратное сканирование битов
Scc - Условная установка байта
Операции со строками символов
LODS - Загрузка символа в аккумулятор
STOS - Запись символа из аккумулятора
INS - Ввод символа
OUTS - Вывод символа
MOVS - Пересылка символа
CMPS - Сравнение символов
SCAS - Сканирование строки символов
В последующих разделах дается описание этих команд. При этом используется синтаксис команд, принятый для языка Ассемблер:
ОРС <dst>, <src>,
где в качестве ОРС указывается мнемокод команды; dst (destination - приемник) - адрес первого операнда, на место которого помещается результат операции; src (source - источник) - адрес второго операнда. Таким образом, порядок следования адресов в поле операндов команды определяет размещение результата. При описании команд приняты следующие обозначения:
r(8,16,32) - 8-, 16- или 32-разрядный регистр общего назначения;
m(8,16,32)-8-, 16- или 32-разрядная ячейка памяти (адресуется байтами MODR/M, SIB);
sreg - сегментный регистр CS, SS, DS, ES, FS или GS;
А - регистр-аккумулятор ЕАХ, АХ или AL (в зависимости от разрядности операндов).
Большинство команд данного класса выполняет операции над 8-, 16- или 32-разрядными операндами. Заданная разрядность определяется, как указано в п. 1.4, режимом работы процессора (16 - для реального режима и режима виртуального 8086; 16 или 32 - для защищенного режима в зависимости от значения бита D в дескрипторе) и может меняться с помощью префиксных байтов.
|