Система команд процессоров IA-32. Функциональная классификация машинных команд. Понятие о формате машинных команд, страница 2

CMOVNS            Условное перемещение, если SF = 0

CMOVP/CMOVPE Условное перемещение, если PF = 1

CMOVNP/CMOVPO Условное перемещение, если PF = 0

XCHG                 Обмен

BSWAP               Обмен байтами

XADD                 Обмен и сложение

CMPXCHG          Сравнение и обмен

CMPXCHG8B     Сравнение и обмен 8 байт

PUSH                  Протолкнуть в стек

POP                     Вытолкнуть из стека

PUSHA/PUSHAD Протолкнуть в стек регистры общего назначения

POPA/POPAD     Вытолкнуть из стека в регистры общего назначения

CWD/CDQ          Преобразовать слово в двойное слово/Преобразовать двойное слово в учетверенное слово

CBW/CWDE       Преобразовать байт в слово/Преобразовать слово в двойное слово в регистре EAX

MOVSX              Перемещение с расширением знака

MOVZX              Перемещение с расширением нуля

3.1.1.2. Команды двоичной целочисленной арифметики

Команды двоичной арифметики производят основные арифметические действия над целыми числами размером в байт, слово или двойное слово, расположенными в памяти и/или в регистрах общего назначения.

ADD                    Сложение целых чисел

ADC                    Сложение целых чисел с добавлением CF

SUB                     Вычитание целых чисел

SBB                     Вычитание целых чисел с заемом

IMUL                   Умножение целых чисел со знаком

MUL                    Умножение целых чисел без знака

IDIV                    Деление целых чисел со знаком

DIV                      Деление целых чисел без знака

INC                      Инкремент

DEC                     Декремент

NEG                    Перемена знака

CMP                    Сравнение

3.1.1.3. Команды десятичной арифметики

Команды десятичной арифметики производят арифметические действия с двоично-десятичными числами (BCD).

DAA                    Десятичная коррекция после сложения

DAS                     Десятичная коррекция после вычитания

AAA                    ASCII коррекция после сложения

AAS                     ASCII коррекция после вычитания

AAM                   ASCII adjust after multiplication

AAD                    ASCII adjust before division

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

Логические команды производят основные побитовые логические действия AND, OR, XOR, NOT над значениями размером в байт, слово и двойное слово.

AND                    Побитовое логическое AND

OR                       Побитовое логическое OR

XOR                     Побитовое логическое исключающее OR

NOT                     Побитовое логическое отрицание NOT

3.1.1.5. Команды сдвига и вращения

Команды сдвига и вращения производят сдвиг и вращение бит в операндах размером в слово и двойное слово.

SAR                     Сдвиг арифметический вправо

SHR                     Сдвиг логический вправо

SAL/SHL             Сдвиг арифметический влево/Сдвиг логический влево

SHRD                  Двойной логический сдвиг вправо

SHLD                   Двойной логический сдвиг влево

ROR                     Вращение вправо

ROL                     Вращение влево

RCR                     Вращение вправо через CF

RCL                     Вращение влево через CF

3.1.1.6. Битовые и байтовые команды

Битовые команды проверяют и изменяют отдельные биты в операндах размером в слово или двойное слово. Байтовые команды устанавливают значение байтового операнда для индикации флагов состояния в регистре флагов EFLAGS.

BT                        Тестирование бита

BTS                      Тестирование бита и его установка

BTR                     Тестирование бита и его сброс

BTC                     Тестирование бита и его инвертирование

BSF                      Сканирование бит вперед

BSR                     Сканирование бит назад

SETE/SETZ         Установка байта, если равно/Установка байта, если ноль