Архитектура IA-32
Два основных режима: Real Address Mode (реальный режим); Protected Virtual Address Mode (защищенный режим). Новые возможности защищенного режима: дополненный регистровый файл; новые механизмы сегментации и страничной адресации; режим виртуального процессора 8086 - Virtual 8086 Mode (V86); добавления к системе команд. Новый дополнительный режим - System Management Mode (режим системного управления) Набор РОН включает в себя: регистры 16-разрядных процессоров 8086/8088, но в 32 бита. К обозначениям регистров добавлена приставка E (Extended - расширенный): EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP. Возможно обращение к младшим 16 разрядам – AX, BX, а также отдельно к младшим и старшим байтам – AL, AH. Регистр состояния процессора FLAGS расширен до 32 разрядов и обозначается – EFLAGS. Флаги 16-разрядных процессоров с 0 по 11 разряд занимают такое же положение в EFLAGS. Добавлены новые флаги: ID Flag (ID, 21 бит) – Если возможно программно устанавливать и сбрасывать этот флаг, процессор поддерживает команду CPUID. Virtual Interrupt Pending (VIP, 20 бит) – Указывает на то, что остались прерывания, ожидающие обработку. Устанавливается и сбрасывается программно, процессор только считывает его значение. Virtual Interrupt Flag (VIF, 19 бит) – Образ флага IF для режима V86. Alignment Check (AC, 18 бит) – Флаг контроля выравнивания. При установке этого флага во время обращении к невыровненному операнду возникает исключение. Virtual-8086 Mode (VM, 17 бит) – Включает/выключает режим V86 в защищенном режиме. Resume Flag (RF, 16 бит) – Флаг возобновления исполнения при отладке. Nested Task (NT, 14 бит) – Флаг вложенной задачи. Устанавливается, когда текущая задача связана с прерванной задачей, очищается, если такой связи нет. I/O Privilege Level (IOPL, 12-13 биты) – определяет уровень привилегий ввода/вывода для текущей задачи. Сегментные регистры – CS, SS, DS, ES – 16 бит. FS и GS – дополнительные сегментные регистры данных. В реальном режиме сегментные регистры определяют 64Кб сегменты. В защищенном режиме сегментные регистры содержат указатели (т.н. селекторы) на описатели сегментов (64-разрядные дескрипторы), находящиеся в памяти в виде таблиц. Дескриптор содержит: базовый адрес, предельный размер сегмента, атрибуты сегмента (права доступа). Существуют две обязательные дескрипторные таблицы: глобальная (GDT), дескрипторная таблица прерывания (IDT), а также множество (до 8192) локальных дескрипторных таблиц (LDT), из которых в один момент времени процессору доступна только одна.