команды общего назначения
.
Команды передачи данных
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 |
Очистить флаг
прерывания |