В этой лекции приводится краткий обзор набора команд процессоров IA-32, вплоть до самых последних процессоров, разделенный на следующие функциональные группы:
• Команды общего назначения
• Команды x87 FPU
• Команды управления состоянием x87 FPU и SIMD
• Команды MMX технологии
• Команды SSE расширений
• Команды SSE2 расширений
• Команды SSE3 расширений
• Системные команды
Некоторые из перечисленных команд и приемы программирования с их использованием подробно рассматриваются в последующих лекциях. При желании использовать ту или иную команду необходимо проверить по справочной документации, поддерживается ли она процессоров, установленным на Вашем компьютере, и используемой Вами системой программирования.
В таблице 3.1. приведены группы команд и процессоры фирмы Intel, поддерживающие эти группы команд
Таблица 3.1. Группы команд и процессоры IA-32
| Группа команд | Поддержка процессорами IA-32 | 
| Общего назначения | Все процессоры IA-32 | 
| x87 FPU | Intel486, Pentium, Pentium MMX, Celeron, Pentium Pro, Pentium II, Pentium II Xeon, Pentium III, Pentium III Xeon, Pentium 4, Intel Xeon (до процессоров Intel486 команды поддерживались дополнительным исполнительным устройством или в режиме эмуляции) | 
| x87 FPU and SIMD управления состоянием | Pentium II, Pentium II Xeon, Pentium III, Pentium III Xeon, Pentium 4, Intel Xeon | 
| MMX технологии | Pentium MMX, Celeron, Pentium II, Pentium II Xeon, Pentium III, Pentium III Xeon, Pentium 4, Intel Xeon | 
| SSE расширений | Pentium III, Pentium III Xeon, Pentium 4, Intel Xeon | 
| SSE2 расширений | Pentium 4, Intel Xeon | 
| SSE3 расширений | Pentium 4, поддерживающий HT технологию (построенный на технологии 90nm) | 
| Системные команды | Все процессоры IA-32 | 
Ниже приводится список команд, разделенный на группы и подгруппы. Для каждой команды дается ее мнемоника и краткое описание. Если имеется две или более мнемоники, это означает, что эти команды имеют один и тот же код операций. У команд могут быть операнды. Обсуждение возможных операндов команд и особенностей использования команд будет производиться в последующих лекциях при изучении соответствующих групп команд. Цель настоящей лекции – дать общее представление о наборе команд.
Эта группа команд включает команды пересылки данных, команды целочисленной двоичной арифметики, команды десятичной арифметики, логические команды, команды сдвига и вращений, битовые и байтовые команды, команды управления программным потоком, цепочечные команды, команды для работы с регистром флагов, команды для работы с сегментными регистрами и обособленные команды. Эти команды могут использоваться, как в прикладных, так и в системных программах.
Команды пересылки данных перемещают данные между памятью, регистрами общего назначения и сегментными регистрами. Они также выполняют специфические операции такие как, условное перемещение, доступ к стеку и преобразование данных.
MOV Передвигает данные между регистрами общего назначения, между памятью и регистрами общего назначения или сегментными регистрами, непосредственные операнды в регистры общего назначения.
CMOVE/CMOVZ Условное перемещение, если равно/Условное перемещение, если ноль (ZF = 1)
CMOVNE/CMOVNZ Условное перемещение, если не равно/Условное перемещение, если не ноль (ZF = 0)
CMOVA/CMOVNBE Условное перемещение, если выше/Условное перемещение, если не ниже или равно
CMOVAE/CMOVNB Условное перемещение, если выше или равно/Условное перемещение, если не ниже
CMOVB/CMOVNAE Условное перемещение, если ниже/Условное перемещение, если не выше или равно
CMOVBE/CMOVNA Условное перемещение, если ниже или равно/Условное перемещение, если не выше
CMOVG/CMOVNLE Условное перемещение, если больше/Условное перемещение, если не меньше или равно
CMOVGE/CMOVNL Условное перемещение, если больше или равно/Условное перемещение, если не меньше
CMOVL/CMOVNGE Условное перемещение, если меньше/Условное перемещение, если не больше или равно
CMOVLE/CMOVNG Условное перемещение, если меньше или равно/Условное перемещение, если не больше
CMOVC Условное перемещение, если CF = 1
CMOVNC Условное перемещение, если CF = 0
CMOVO Условное перемещение, если OF = 1
CMOVNO Условное перемещение, если OF = 0
CMOVS Условное перемещение, если SF = 1
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.