команды общего назначения

.

Команды передачи данных

MOV Присваивание
CMOVxx Условное присваивание
XCHG Обмен значений
BSWAP Перестановка байтов
XADD Обмен и сложение
CMPXCHG Сравнение и обмен
CMPXCHG8B Сравнение и обмен 8 байтов
PUSH Поместить значение в стек
POP Взять значение из стека
PUSHA/PUSHAD Поместить значения регистров общего назначения в стек
POPA/POPAD Взять значения регистров общего назначения из стека
IN Прочитать значение из порта ввода/вывода
OUT Записать значение в порт ввода/вывода
CWD Преобразовать Word в DWord
CDQ Преобразовать DWord в QWord
CBW Преобразовать Byte в Word
CWDE Преобразовать Word в DWord в регистре eax
MOVSX Присвоить и расширить с учетом знака
MOVZX Присвоить и расширить нулевым значением

Двоичные арифметические команды

ADD Сложение
ADC Сложение с переносом
SUB Вычитание
SBB Вычитание с заемом
IMUL Знаковое умножение
MUL Беззнаковое умножение
IDIV Знаковое деление
DIV Беззнаковое деление
INC Инкремент
DEC Декремент
NEG Смена знака
CMP Сравнение

Двоично-десятичные (BCD) арифметические команды

DAA Десятичная коррекция после сложения
DAC Десятичная коррекция после вычитания
AAA ASCII коррекция после сложения
AAS ASCII коррекция после вычитания
AAM ASCII коррекция после умножения
AAD ASCII коррекция перед делением

Логические команды

AND Побитовое логическое И
OR Побитовое логическое ИЛИ
XOR Побитовое логическое Исключающее ИЛИ
NOT Побитовое логическое НЕ

Команды побитового сдвига и вращения

SAR Арифметический сдвиг вправо
SHR Логический сдвиг вправо
SAL/SHL Арифметический/логический сдвиг влево
SHRD Двойной сдвиг вправо
SHLD Двойной сдвиг влево
ROR Вращение вправо
ROL Вращение влево
RCR Вращение вправо через флаг переноса
RCL Вращение влево через флаг переноса

Команды работы с битами и байтами

BT Проверка бита
BTS Проверка и установка бита
BTR Проверка и сброс бита
BTC Проверка и инверсия бита
BSF Проверка бита в прямом направлении
BSR Проверка бита в обратном направлении
SETxx Установить значение байта в зависимости от флага
TEST Логическое сравнение

Команды передачи управления

JMP Безусловный переход
Jxx Условный переход
JCXZ/JECXZ Переход, если cx/ecx равен 0
LOOP Цикл со счетчиком в ecx
LOOPZ/LOOPE Цикл со счетчиком в ecx и выходом при нуле / равенстве
LOOPNZ/LOOPNE Цикл со счетчиком в ecx и выходом при не нуле / неравенстве
CALL Вызов подпрограммы
RET Возврат из подпрограммы
IRET Возврат из прерывания
INT Вызов программного прерывания
INTO Вызов прерывания по переполнению
BOUND Переход при выходе значения за заданные рамки
ENTER Высокоуровневый вход в процедуру
LEAVE Высокоуровневый выход из процедуры

Команды работы со строками (последовательностями)

MOVS Перемещение строки
MOVSB Перемещение строки байтов
MOVSW Перемещение строки слов
MOVSD Перемещение строки двойных слов
CMPS Сравнение строки
CMPSB Сравнение строки байтов
CMPSW Сравнение строки слов
CMPSD Сравнение строки двойных слов
SCAS Проверка строки
SCASB Проверка строки байтов
SCASW Проверка строки слов
SCASD Проверка строки двойных слов
LODS Чтение строки
LODSB Чтение строки байтов
LODSW Чтение строки слов
LODSD Чтение строки двойных слов
STOS Запись строки
STOSB Запись строки байтов
STOSW Запись строки слов
STOSD Запись строки двойных слов
REP Префикс повторения: пока ecx не равен 0
REPE/REPZ Префикс повторения: пока равно / ноль
REPNE/REPNZ Префикс повторения: пока не равно / не ноль
INS Чтение из порта строки
INSB Чтение из порта строки байтов
INSW Чтение из порта строки слов
INSD Чтение из порта строки двойных слов
OUT Запись в порт строки
OUTB Запись в порт строки байтов
OUTW Запись в порт строки слов
OUTD Запись в порт строки двойных слов

Команды управления флагами

STC Установить флаг переноса
CLC Очистить флаг переноса
CMC Инвертировать флаг переноса
CLD Очистить флаг направления
STD Установить флаг направления
LAHF Загрузить флаги в ah
SAHF Записать ah в флаги
PUSHF/PUSHFD Поместить EFLAGS в стек
POPF/POPFD Взять EFLAGS из стека
STI Установить флаг прерывания
CLI Очистить флаг прерывания