3.1.2.1.
Команды перемещения данных x87 FPU
3.1.2.2.
Арифметические команды x87 FPU
3.1.2.3.
Команды сравнения x87 FPU
3.1.2.4.
Трансцендентные команды x87 FPU
3.1.2.5.
Команды загрузки констант x87 FPU
3.1.2.6.
Команды контроля x87 FPU
3.1.2.6.
Команды управления состоянием X87 FPU AND SIMD
3.1.3.
Команды MMX™
Главным заложенным в
этих командах принципом является одновременная обработка нескольких однотипных
упакованных целочисленных данных одной командой (SIMD, Single Instruction Multiply Data).
Эти команды выполняются с использованием особого устройства – модуля MMX, который аппаратно пересекается
с модулем x87 FPU.
3.1.3.1.
Команды перемещения данных MMX
3.1.3.2.
Команды преобразования типов MMX
3.1.3.3.
Арифметические команды с упакованными данными MMX
3.1.3.4.
Команды сравнения MMX
3.1.3.5.
Логические команды MMX
3.1.3.6.
Команды сдвига и вращения MMX
3.1.3.7.
Команды управления состоянием MMX
3.1.4.
Команды SSE
В отличие от команд
целочисленного MMX-расширения, выполняемых
модулем, построенным на базе стандартного сопроцессора, команды SSE-расширения выполняются
самостоятельным модулем в составе процессора. Основной тип данных SSE-расширения – упакованные числа
с плавающей точкой в коротком формате. SSE-расширение появилось в 1999 году в составе процессора Pentium III.
3.1.4.1.
Команды перемещения данных SSE
3.1.4.2.
Арифметические команды с упакованными данными SSE
3.1.4.3.
Команды сравнения SSE
3.1.4.4.
Логические команды SSE
3.1.4.5.
Команды упаковки и распаковки SSE
3.1.4.6.
Команды преобразования SSE
3.1.4.7.
Команды управления состоянием регистра MXCSR SSE
3.1.4.8.
Команды SIMD работы с 64-битными целыми числами SSE
3.1.4.9.
Команды контроля кеширования, выборки и порядка выполнения SSE
3.1.5.
Команды SSE2
SSE-расширение появилось в 2000 году в составе процессора Pentium IV. Команды SSE2-расширения работают с упакованными
числами с плавающей точкой двойной точности, а также с упакованными байтами,
словами и двойными словами, расположенными в XMM-регистрах.
3.1.5.1.
Команды перемещения данных SSE2
3.1.5.2.
Арифметические команды с упакованными данными SSE2
3.1.5.3.
Логические команды SSE2
3.1.5.4.
Команды сравнения SSE2
3.1.5.5.
Команды упаковки и распаковки SSE2
3.1.5.6.
Команды преобразования SSE2
3.1.5.7.
Команды с упакованными числами с плавающей точкой одинарной точности SSE2
3.1.5.8.
Команды для работы со 128-битными целыми числами SIMD SSE2
3.1.5.9.
Команды контроля кеширования и порядка выполнения SSE2
3.1.6.
Команды SSE3
Команды
SSE3-расширения появились в 2004 году в процессора Pentium IV, выполненных по технологии Hyper-Threading. Эти команды направлены на увеличение производительности
SSE, SSE2 и x87 FPU расширений.
3.1.6.1.
Команда преобразование целых в x87 FPU SSE3
3.1.6.2.
Команда загрузки невыровненных 128-битных чисел SSE3
3.1.6.3.
Команды ADD/SUB для чисел с плавающей точкой SSE3
3.1.6.4.
Команды горизонтального ADD/SUB для чисел с плавающей точкой SSE3
3.1.6.5.
Команды LOAD/MOVE/DUPLICATE для чисел с плавающей точкой SSE3
3.1.6.6.
Команды синхронизации агентов SSE3
3.1.7.
Системные команды
Системные команды
используются для контроля тех функций процессора, которые направлены на
поддержку операционных систем и выполнения программ. Эти команды будут
рассмотрены в лекции, посвященной работе процессора в защищенном режиме.
3.2. Понятие о формате машинных команд.
Машинные команда хранятся в памяти компьютера
в двоичной кодировке. Правила кодирования команд называются форматом команд.
Машинные команды IA-32 имеют сложную структуру и состоят из совокупности
взаимосвязанных полей (рис 3.1). Длина машинной команды IA-32 от
1 до 15 байт.