Программная модель процессора IntelPentium (IA-32)
Intel Architecture – IA
Itanium IA-64
Программная модель – Регистры
SR – Segment Register, СР (CS, SS, DS, ES, FS, GS)
DR – Data Register, РД
TW – Tag Word, РТ
FPSR – Float Point Status Register, РС
FPCR – Float Point Control Register, РУ
FIP – Float … Point, УК (указатель команды)
FDP – Float Data Point, УД (указатель данных)
XMM
РПД – регистр пакетированных данных
РУС – регистр управления состоянием
(16+64) Shadow Register
MSR Module Specific Register
GDTR Global Descriptor Table Register
LDT Limit
TSS Task Status Segment (селектор)
TR Task Register
Прикладная модель CPU
ShadowRegister
Содержимое сегментных регистров трактуется по разному для реального и защищенного режима.
R (Real) – реальный режим
SR содержит базовый адрес соответствующего сегмента и участвует в формировании физического адреса, складываясь со смещением Offset (внутрисегментное смещение), будучи предварительно сдвинутым на 4 разряда влево (X16).
P (Protect) – защищенный режим
Содержимое SR трактуется, как селектор сегмента. С помощью поля индекса (13 бит) определяется относительный адрес дескриптора соответствующего сегмента в GDT (TI=0) или LDT (TI=1).
Каждый SR сопровождается программно недоступными (64 разрядным) расширением, которое называют «теневым регистром» (Shadow Register).
Использование Shadow Register: аппаратное средство увеличения производительности компьютера, т.к. позволяет обеспечить быстрый доступ к дескриптору сегмента.
EFLAGS расширенный регистр флагов
Содержит все арифметические флаги и флаги управления, которые имели место в базовой модели процессора 8086. А также содержит дополнительно ряд системных флагов, основными из которых являются:
VM – Virtual Mode
Переводит процессор в особый режим виртуального процессора 8086 (называют V86). Этот режим может иметь место только в рамках защищенного режима.
Protect Enable (PE=1) бит включения защищенного режима в регистре CR0.
AC – Alignment Check – бит контроля выравнивания
При установке (AC=1) и соответствующем разрешении (бит маски выравнивания, Bit Alignment Mask, BAM=1 установлен) реализуется контроль соблюдения целочисленной границы, но только в отношении данных (не команд) и только на наинизшем (прикладном) уровне привилегий.
PL=3 – номер уровня привилегий (кольца защиты).
IOPL – Input/Output Privilege Level
Двухбитное поле IOPL задает наинизший допустимый уровень привилегий для возможностей использования в программе с этим или более высоким уровнем команд I/O.
Т.к. уровень привилегий для команд I/O может изменяться, то они занимают промежуточное положение между привилегированными командами (выполнение допустимо только на наинизших уровнях привилегии CPL=0, Current Privilege Level) и непривилегированными.
Команды I/O иногда называют чувствительными командами. Кроме прямых команд I/O (IN, OUT, INS, OUTS) к чувствительным относятся команды манипуляций с флагом IF (Interrupt): STI и CLT (Set&Clean).
Программная модель FPU
Регистры данных (числовые, арифметические) предназначены для хранения чисел представленных в формате с плавающей точкой в расширенном (80 бит) формате.
Структура формата включает в себя 3 поля:
1) S (sign) – 1 бит знак числа
2) E (exponent) – 15 бит смещенный порядок (характеристика)
3) M (significant) – 64 бит мантисса
В расширенном формате бит целой части представляется явно (скрытой единицы нет).
Не смотря на то, что внутренним форматом FPU является расширенный формат, FPU позволяет производить операции над следующими типами данных, представленных в следующих форматах:
16 бит (ЦС – целое слово)
32 бита (КЦ – короткое слово)
64 бита (ДЦ – длинное целое)
BCD формат
80 бит (1 – знак числа, 18 цифр * 4 = 72 бита)
32 бита (одинарной точности, ОТ) КФ – короткий формат
64 бита (двойной точности, ДТ) ДФ
80 бит (расширенной точности, РТ) РФ
Диапазон ЦСПЗ:
ОТ -
ДТ -
РТ -
FPU допускает использование целого числа в качестве одного из операндов при выполнении арифметических операций, а также в операциях обмена памятью. При этом целочисленный операнд обязательно выбирается из памяти.
Для указания операции с целочисленным операндом в мнемонику assembler команд вставляется префикс I (integer), например:
FADD – сложение 2х действительных чисел с плавающей точкой
FIADD – сложение целого числа с действительным
Целочисленные операнды предварительно преобразуются в формат с плавающей точкой.
Арифметические команды могут использовать целые операнды только в форматах 2 или 4 байта. Операнд 8 байт может использоваться только в командах загрузки FILD (из памяти в регистр данных FPU и записи в память) и FISTP (store, P – pop). В последней команде суффикс P означает, что завершение операции сопровождается выталкиванием пересылаемого в память операнда из регистрового стека.
По сравнению с командами с двумя вещественными операндами, команды с целым операндом требуют большего времени для их выполнения за счёт предварительного преобразования целочисленного операнда во внутренний формат FPU.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.