Форматы команд и способы адресации в CISC-процессорах
В качестве примера рассмотрим набор команд и способы адресации, используемые в процессорах интеловской архитектуры. Для этих процессоров в табл. 2.1 приведены данные о развитии их системы команд.
Таблица 2.1
Развитие системы команд процессоров архитектуры Intel
Год появления набора команд | Тип процессора, где набор был реализован впервые | Общее число команд | Смысл расширения |
| |||
1979 | i8086 | 170 | Исходный набор команд х 86 | ||||
1985 | i386 | 220 | 50 новых команд, необходимых для перехода к 32-разрядной архитектуре | ||||
1997 | Pentium/MMX | 277 | 57 ММХ-команд для параллельной обработки видео- и аудиоинформации | ||||
1999 | Katmai (Pentium III) | 347 | 70 команд: SIMD-FP, дополнена ММХ, управление потоковым обменом данными с памятью |
В базовый набор команд 8086 входили операции с плавающей запятой (FP), но до i386 включительно они выполнялись отдельным сопроцессором, которого могло в компьютере и не быть. Блок FP-функций был включен в состав основного процессора в i486, однако в варианте 486SX обращение к этому блоку было заблокировано. Эти команды стали обязательной частью процессора, только начиная с Pentium.
Базовый набор команд 32-разрядного интеловского процессора обеспечивает выполнение операций над операндами, которые находятся в регистре, памяти или непосредственно в команде. В набор входят безадресные, одно-, двух- и трехадресные команды. Процессор реализует следующие шесть типов двухадресных команд:
- регистр—регистр;
- память — регистр;
- непосредственный операнд — регистр;
- регистр — память;
- память — память;
- непосредственный операнд — память.
Операнды могут содержать 8, 16 или 32 разряда. Для реализации различных типов команд определены форматы, задающие порядок размещения информации о выполняемой операции и способах выбора операндов.