Набор команд x87
Набор команд x86
Набор команд IA-32
Наборы команд центрального процессора
Основной задачей процессора является выполнение инструкций по обработке данных – команд машинного языка процессора. Совокупность этих команд образует набор команд данного процессора. Ниже рассматриваются наборы команд процессоров IBM-совместимых компьютеров: Intel, AMD и VIA (семейства UltraSPARC и PowerPC имеют свои собственные наборы команд, отличные как от наборов команд IBM-совместимых компьютеров, так и друг от друга).
В IBM-совместимых компьютерах, выпускаемых в настоящее время, используются следующие наборы команд:
· набор команд IA-32;
· набор команд Intel 64;
· набор команд IA-64.
Набор команд 32-разрядных процессоров Intel называют IA-32 (Instruction Architecture 32 – архитектура команд 32). Этот набор впервые был использован в процессоре Intel 80386.
Набор команд IA-32, в свою очередь, содержит следующие три набора:
· набор команд x86;
· набор команд x87;
· наборы мультимедийных команд.
Основной набор команд процессоров Intel называют набором x86. Этот набор впервые появился в процессорах Intel 8086 и включает следующие виды команд:
· команды перемещения данных;
· команды двоичной арифметики (сложения, вычитания, умножения и деления) для чисел с фиксированной точкой (целых чисел);
· команды десятичной арифметики для двоично-десятичных чисел;
· команды логических операций (НЕ, И, ИЛИ и исключающего ИЛИ);
· команды сдвига битов;
· команды проверки и модификации битов;
· команды управления (условного и безусловного перехода, цикла, вызова процедур из возврата из процедур);
· команды работы со строками;
· команды ввода-вывода;
· системные команды.
В 16-разрядных процессорах Intel 8086, Intel 8088 и Intel 80286 эти команды использовались с байтами (8 бит) и словами (16 бит). В 32-разрядных процессорах, начиная с Intel 80386, добавлены команды работы с двойными словами (32 бита), а также некоторые другие команды.
Команды набора x86 оперируют только с целыми числами. Операции для чисел с плавающей точкой первоначально либо реализовались в процессоре программно, либо выполнялись в отдельном процессоре (первым таким процессором был процессор Intel 8087). Поскольку процессор Intel 8087 функционировал только совместно с процессором Intel 8086 или Intel 8088, его назвали сопроцессором. Начиная с процессора Intel 80486, сопроцессор для операций с плавающей точкой является встроенным блоком процессора.
Для операций с плавающей точкой используется набор команд x87, включающий в себя следующие группы команд:
· команды перемещения данных (в том числе и команды перемещения данных по некоторому условию);
· арифметические команды;
· команды сравнения;
· команды вычисления основных тригонометрических и логарифмический функций;
· команды загрузки некоторых констант (например, значения p);
· команды управления выполнением операций для чисел с плавающей точкой.
Эти команды поддерживают как операции над числами с плавающей точкой обычного формата (32 бита), формата двойной точности (64 бита) и длинного формата (80 бит).