Это старая версия документа!
Основы
Некоторые основные команды ассемблера
Команда^Выполняемая операция^Группа^
AAA ASCII-коррекция после сложения Десятичная арифметика AAD ASCII-коррекция регистра AX перед делением Десятичная арифметика AAM ASCII-коррекция регистра AX после умножения Десятичная арифметика AAS ASCII-коррекция после вычитания Десятичная арифметика ADC Сложение с переносом Основная арифметика ADD Сложение Основная арифметика AND Логическое "И" Основная арифметика ARPL Коррекция поля RPL селектора Привилегированные BOUND Контроль нахождения индекса массива в границах Специальные команды BSF Сканирование бита вперед Работа с битами BSR Сканирование бита назад Работа с битами BSWAP Перестановка байтов (внутри 32-бит. регистра) Пересылка данных BT Проверка бита Работа с битами BTC Проверка бита и дополнение Работа с битами BTR Проверка бита и сброс в 0 Работа с битами BTS Проверка бита и установка в 1 Работа с битами CALL Вызов процедуры Переходы и процедуры CBW Преобразование байта в слово Пересылка данных CDQ Преобразование двойного слова в счетверенное слово Пересылка данных CLC Сброс флажка переноса Установка флажков CLD Сброс флажка направления Установка флажков CLI Сброс флажка прерывания Установка флажков CLTS Сброс флажка переключения задачи Привилегированные CMC Инвертирование флажка переноса Установка флажков CMP Сравнение двух операндов Основная арифметика CMPS Сравнение цепочечных операндов Цепочечные команды CMPXCHG Сравнение и обмен Специальные команды CWD Преобразование слова в двойное слово Пересылка данных CWDE Преобразование слова в двойное слово Пересылка данных DAA Десятичная коррекция AL после сложения Десятичная арифметика DAS Десятичная коррекция AL после вычитания Десятичная арифметика DEC Декремент на 1 Инкремент и декремент DIV Беззнаковое деление Умножение и деление ENTER Образование стекового кадра для параметров процедуры Переходы и процедуры ESC Универсальная единая команда для сопроцессора с плавающей точкой Сопроцессор F... Команды сопроцессора с плавающей точкой Сопроцессор HLT Останов Привилегированные IDIVЗнаковое деление Умножение и деление IMUL Знаковое умножение Умножение и деление IN Ввод из порта Системные команды INC Инкремент на 1 Инкремент и декремент INS Ввод из порта в цепочку Цепочечные команды INT Вызов процедуры прерывания Вызов прерывания INTO Вызов процедуры прерывания 4, если OF=1 Вызов прерывания INVD Недостоверность кэш-памяти Системные команды INVLPG Недостоверность элемента буфера TLB Системные команды IRET Возврат из прерывания Вызов прерывания J(cond) Условная передача управления Условные команды JCXZ
/JECXZ Переход, если значение счетчика равно нулю Условные команды
JMP Безусловная передача управления Переходы и процедуры LAHF Пересылка из регистра флажков в регистр AH Установка флажков LAR Загрузка байта прав доступа Привилегированные LDS Загрузка полного указателя (для DS) Сегментные регистры LEA Загрузка эффективного адреса Специальные команды LEAVE Отмена действия команды ENTER перед выходом из процедуры Переходы и процедуры LES Загрузка полного указателя (для ES) Сегментные регистры LFS Загрузка полного указателя (для FS) Сегментные регистры LGDT Загрузка регистра глобальной дескрипторной таблицы Привилегированные LGS Загрузка полного указателя (для GS) Сегментные регистры LIDT Загрузка регистра дескрипторной таблицы прерываний Привилегированные LLDT Загрузка регистра локальной дескрипторной таблицы Привилегированные LMSW Загрузка слова состояния машины Привилегированные LOCK Префикс выдачи сигнала LOCK# Системные команды LODS Загрузка цепочечного операнда в аккумулятор Цепочечные команды LOOP Управление циклом со счетчиком в регистре CX Условные команды LOOPE
/LOOPZ Управление циклом со счетчиком в регистре CX Условные команды
LOOPNE
/LOOPNZ Управление циклом со счетчиком в регистре CX Условные команды
LSL Загрузка предела сегмента Системные команды LSS Загрузка полного указателя (для SS) Сегментные регистры LTR Загрузка регистра задачи Привилегированные MOV Пересылка данных Пересылка данных MOV(spec) Пересылка в специальные регистры и из них Привилегированные MOVS Пересылка данных из цепочки в цепочку Цепочечные команды MOVSX Пересылка со знаковым расширением Пересылка данных MOVZX Пересылка с нулевым расширением Пересылка данных MUL Беззнаковое умножение Умножение и деление NEG Получение дополнительного кода (изменение знака) Основная арифметика NOP Пустая операция Пересылка данных NOT Инвертирование Основная арифметика OR Логическое включающее "ИЛИ" Основная арифметика OUT Вывод в порт Системные команды OUTS Вывод цепочки в порт Цепочечные команды POP Извлечение слова из стека Работа со стеком POPA Извлечение из стека всех общих регистров Работа со стеком POPF Извлечение из стека в регистр флажков Работа со стеком PUSH Засылка операнда в стек Работа со стеком PUSHA Засылка в стек всех общих регистров Работа со стеком PUSHF Засылка в стек регистра флажков Работа со стеком RCL Циклический сдвиг влево с участием флажка CF Команды сдвига RCR Циклический сдвиг вправо с участием флажка CF Команды сдвига REP Префикс повторения цепочечной операции Цепочечные команды REPE
/REPZ Префикс повторения цепочечной операции Цепочечные команды
REPNE
/REPNZ Префикс повторения цепочечной операции Цепочечные команды
RET Возврат из процедуры Переходы и процедуры ROL Циклический сдвиг влево Команды сдвига ROR Циклический сдвиг вправо Команды сдвига SAHF Пересылка регистра AH в регистр флажков Установка флажков SAL Сдвиг влево (умножение на 2) Команды сдвига SALC Установка регистра AL по флажку CF Установка флажков SAR Сдвиг вправо (знаковое деление на 2) Команды сдвига SBB Вычитание с заемом Основная арифметика SCAS Сравнение (сканирование) цепочечных данных Цепочечные команды SET(cond) Установка байта по условию Условные команды SGDT Сохранение регистра глобальной дескрипторной таблицы Привилегированные SHL Сдвиг влево (умножение на 2) Команды сдвига SHLD Двойной сдвиг влево Команды сдвига SHR Сдвиг вправо (беззнаковое деление на 2) Команды сдвига SHRD Двойной сдвиг вправо Команды сдвига SIDT Сохранение регистра дескрипторной таблицы прерываний Привилегированные SLDT Сохранение регистра локальной дескрипторной таблицы Привилегированные SMSW Сохранение слова состояния машины Привилегированные STC Установка флажка переноса Установка флажков STD Установка флажка направления Установка флажков STI Установка флажка прерывания Установка флажков STOS Сохранение цепочечных данных Цепочечные команды STR Сохранение регистра задачи Привилегированные SUB Вычитание Основная арифметика TEST Логическое сравнение Основная арифметика VERR Проверка сегмента на считывание Системные команды VERW Проверка сегмента на запись Системные команды WAIT Ожидание Системные команды WBINVD Обратная запись и недостоверность кэш-памяти Системные команды XADD Обмен и сложение Специальные команды XCHG Обмен данными - регистр/регистр или регистр/память Пересылка данных XLAT Перекодирование байта по таблице Специальные команды XOR Логическое исключающее "ИЛИ" Основная арифметика