Это старая версия документа!
Основы
Некоторые основные команды ассемблера
| Команда | Выполняемая операция | Группа | |
|---|---|---|---|
| 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 | Инкремент и декремент | |
| DI | Беззнаковое деление | Умножение и деление | |
| ENTER | Образование стекового кадра для параметров процедуры | Переходы и процедуры | |
| ES | Универсальная единая команда для сопроцессора с плавающей точкой | Сопроцессор | |
| 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 | Логическое исключающее «ИЛИ» | Основная арифметика |