26.1 Атрибуты размера операнда и размера адресa
26.1.1 Атрибут для сегмента по умолчанию
26.1.2 Префиксы размера операнда и размера адреса команд
26.1.3 Атрибут размера адреса для стека
26.2 Формат команды
26.2.1 Байты ModR/M и SIB
26.2.2 Как читать описание набора команд
26.2.2.1 Колонка кода операции
26.2.2.2 Колонка "Команда"
26.2.2.3 Колонка "Число тактовых циклов"
26.2.2.4 Колонка "Описание"
26.2.2.5 Работа команды
26.2.2.6 Описание
26.2.2.7 Изменяемые флаги
26.2.2.8 Исключения защищенного режима
26.2.2.9 Исключения режима реальных адресов
26.2.2.10 Исключения виртуального режима 8086
AAA - преобразование к ASCII после сложения
AAD - преобразование AX к ASCII перед делением
AAM - преобразование AX к ASCII после умножения
AAS - преобразование AL к ASCII после вычитания
ADC - сложение с флагом переноса
ADD - сложение
AND - логическое И
ARPL - преобразование поля RPL селектора
BOUND - проверка индекса массива относительно границ массива
BSF - поразрядное сканирование в прямом направлении
BSR - поразрядное сканирование в обратном направлении
BSWAP - изменение последовательности байтов
BT - проверка бита
BTC - проверка бита и дополнение
BTR - проверка бита и сброс
BTS - проверка бита и установка
CALL - вызов процедуры
CBW / CWDE - преобразование байта в слово / преобразование слова в двойное слово
CLC - очистить флаг переноса
CLD - очистить флаг направления
CLI - очистить флаг прерывания
CLTS - очистить флаг переключения задачи в CR0
CMC - дополнение флага переноса
CMP - сравнение двух операндов
CMPS / CMPSB / CMPSW / CMPSD - сравнение строковых операндов
CMPXCHG - сравнение и обмен
CWD / CDQ - преобразование слова в двойное слово/двойного слова в учетверенное слово
DAA - десятичное преобразование AL после сложения
DAS - десятичное преобразование AL после вычитания
DEC - декремент на 1
DIV - деление без знака
ENTER - создание кадра стека для параметров процедуры
F2XM1 - вычисление "(два в степени Х) минус 1"
FABS - абсолютное значение
FADD / FADDP / FIADD - сложение
FBLD - загрузка двоично- кодированного десятичного
FBSTR - сохранить двоично-кодированное десятичное и выполнить извлечение из стека
FCHS - изменение знака
FCLEX/FNCLEX - очистить исключения
FCOM / FCOMP / FCOMPP - сравнение действительных чисел
FCOS - косинус
FDECSTP - декремент указателя вершины стека
FDIV / FDIVP / FIDIV - деление
FDIVR / FDIVPR / FIDIVR - деление в обратном порядке
FFREE - освободить регистр операций с плавающей точкой
FICOM / FICOMP - сравнение целочисленных значений
FILD - загрузка целочисленного операнда
FINCSTP - инкремент указателя вершины стека
FINIT / FNINIT - инициализация модуля операций с плавающей точкой (FPU)
FIST / FISTP - сохранение целочисленного операнда
FLD - загрузка действительного значения
FLD1 / FLDL2T / FLDL2E / FLDPI / FLDLG2 / FLDLN2 / FLDZ - загрузка константы
FLDCW - загрузка управляющего слова
FLDENV - загрузка контекста FPU
FMUL / FMULP / FIMUL - умножение
FNOP - нет операции
FPATAN - частичный арктангенс
FPREM - частичный остаток
FPREM1 - частичный остаток
FPTAN - частичный тангенс
FRNDINT - округление к целому
FRSTOR - восстановить состояние FPU
FSAVE / FNSAVE - сохранить состояние FPU
FSCALE - умножение на масштабный множитель
FSIN - синус
FSINCOS - синус и косинус
FSQRT - квадратный корень
FST / FSTP - сохранить действительное число
FSTCW / FNSTCW - сохранить управляющее слово
FSTENV / FNSTENV - сохранить контекст FPU
FSTSW / FNSTSW - сохранить слово состояния
FSUB / FSUBP / FISUB - вычитание
FSUBR / FSUBPR / FISUBR - обратное вычитание
FTST - тестирование
FUCOM / FUCOMP / FUCOMPP - неупорядоченное сравнение
FWAIT - ожидание действительных чисел
FXAM - рассмотреть
FXCH - поменять местами содержимое регистра
FXTRACT - выделение экспоненты и мантиссы
FYL2X - вычисление Y*Log2 X
FYL2XP1 - вычисление Y*Log2 (X+1)
HLT - останов
IDIV - деление со знаком
IMUL - умножение со знаком
IN - ввод из порта
INC - инкркмент на 1
INS / INSB / INSW / INSD - ввод из порта в строку
CALL / INTO - вызов процедуры прерывания
INVD - аннулирование кеша
INVLPG - аннулирование элемента TLB
IRET / IRETD - возврат из прерывания
Jcc - переход, если условие перехода удовлетворяется
JMP - переход
LAHF - загрузка флагов в регистр AH
LAR - загрузка байта прав доступа
LEA - загрузка исполнительного адреса
LEAVE - выход из процедуры высокого уровня
LGDT / LIDT - загрузка регистра таблици дескрипторов глобальной/прерываний
LGS / LSS / LDS / LES / LFS - загрузка полного указателя
LLDT - загрузка локальной таблици дескрипторов
LMSW - загрузка слова состояния машины
LOCK - префикс возбуждения сигнала LOCK#
LODS / LODSB / LODSW / LODSD - загрузка строкового операнда
LOOP / LOOPусловие - управление циклом при помощи счетчика CX
LSL - загрузка граници сегмента
LTR - загрузка регистра задачи
MOV - пересылка данных
MOV - пересылка данных в специальные регистры и из них
MOVS / MOVSB / MOVSW / MOVSD - пересылка данных из строки
MOVSX - пересылка с расширением ЗНАКОМ
MOVZX - пересылка с расширением НУЛЕМ
MUL - умножение без знака AL или AX
NEG - отрицание с дополнением до двух
NOP - нет операции
NOT - отрицание с дополнением до одного (поразрядное дополнение)
OR - логическое исключающее ИЛИ
OUT - вывод в порт
OUTS / OUTSB / OUTSW / OUTSD - вывод строки в порт
POP - извлечение слова из стека
POPA / POPAD - извлечение из стека всех регистров общего назначения
POPF / POPFD - извлечение из стека регистров FLAGS или ERFLAGS
PUSH - помещение операнда в стек
PUSHA / PUSHAD - помещение в стек всех регистров общего назначения
PUSHF / PUSHFD - помещение в стек флаговых регистров
RCL / RCR / ROL / ROR - циклический сдвиг
REP / REPE / REPZ / REPNE / REPNZ - повторение следующей строковой команды
RET - возврат из процедуры
SAHF - запись AH во флаги
SAL / SAR / SHL / SHR - команды сдвига
SBB - целочисленное вычитание с заемом
SCAS / SCASB / SCASW / SCASD - сравнение строковых данных
SETcc - установка байта по условию
SGDT / SIDT - сохранение регистра таблици дескрипторов глобальной/прерываний
SHLD - сдвиг влево двойной точности
SHRD - сдвиг вправо двойной точности
SLDT - сохранение регистра локальной таблици дескрипторов
SMSW - сохранение слова состояния машины
STC - установка флага переноса
STD - установка флага направления
STI - установка флага прерывания
STOS / STOSB / STOSW / STOSD - сохранение строковых данных
STR - сохранение регистра задачи
SUB - целочисленное вычитание
TEST - логическое сравнение
VERR/VERW - верификация доступности чтения или записи сегмента
WAIT - ожидание
WBINVD - обратная запись и аннулирование кеша
XADD - обмен местами и сложение
XCHG - обмен местами регистра/памяти и регистра
XLAT / XLATB - Ассоциативная трансляция в таблице
XOR - логическое исключающее ИЛИ
Приложения
Приложение A. Таблица кодов операций
А.1 Использование аббревиатуры
А.2 Кодирование метода адресации
А.3 Кодирование типов операндов
А.4 Коды регистров
Приложение B. Таблица воздействия команд на флаги
B.1 Используемые обозначения
Приложение C. Таблица флагов состояния
C.1 Функции флагов состояния
C.2 Используемые обозначения
Приложение D. Коды условий
D.1 Определения условий
Приложение E. Форматы команд и синхронизация
E.1 Кодирование и время выполнения команд микропроцессором i486
E.2 Кодирование команд
E.2.1 Общий обзор
E.2.2 32-разрядные расширения набора команд
E.2.3 Кодирование полей целочисленных команд
E.2.3.1 Кодирование поля длины операнда (W)
E.2.3.2 Кодирование поля регистра общего назначения (reg)
E.2.3.3 Кодирование поля сегментного регистра (sreg)
E.2.3.4 Кодирование режима адресации
E.2.3.5 Кодирование поля направления операций (d)
E.2.3.6 Кодирование поля распространения знака (s)
E.2.3.7 Кодирование поля условия проверки (tttn)
E.2.3.8 Кодирование поля регистров управления, отладки и тестирования (eee)
E.2.4 Кодирование полей команд для вещественных вычислений
Приложение F. Краткое описание числовых исключений
Приложение G. Оптимизация кода
G.1 Режимы адресации
G.2 Модуль предварительной выборки
G.3 Выравнивание кеша и кода
G.4 Команда NOP
G.5 Команды работы с целыми числами
G.6 Коды условия
G.7 Команды работы со строками
G.8 Команды работы с числами с плавающей точкой
G.9 Префиксные коды операций
G.10 Перекрывающиеся такты
G.11 Руководство по использованию остальных команд