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

Страницы работы

12 страниц (Word-файл)

Содержание работы

Лекция 3. Система команд процессоров IA-32

3.1. Функциональная классификация машинных команд

В этой лекции приводится краткий обзор набора команд процессоров 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

Ниже приводится список команд, разделенный на группы и подгруппы. Для каждой команды дается ее мнемоника и краткое описание. Если имеется две или более мнемоники, это означает, что эти команды имеют один и тот же код операций. У команд могут быть операнды. Обсуждение возможных операндов команд и особенностей использования команд будет производиться в последующих лекциях при изучении соответствующих групп команд. Цель настоящей лекции – дать общее представление о наборе команд.

3.1.1. Команды общего назначения

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

3.1.1.1. Команды пересылки данных

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

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

Похожие материалы

Информация о работе