Это старая версия документа!
Основы
Некоторые основные команды ассемблера
| Команда | Выполняемая операция | Группа |
|---|---|---|
| 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 | Логическое исключающее «ИЛИ» | Основная арифметика |