Программная среда процессора


Типы данных

· байт=8 бит

· слово=2 байта, которым последовательно адресуются в памяти, байт, содержащий 0 бит – младший, а 15 – старший

· 2е слово – 4 байта, последовательно расположенные в памяти. Для адресации старшего слова надо адресовать младшее слово со смещением 2: AX:XAX; адресация младшей части – MOV AX,[XAX], старшей части – MOV AX,[XAX+2]

учетверенное слово

· целое со знаком – м.б. 8, 16, 32-разрядное: 8 – -128?127; 16 – -32768?32767; 32 – -231?231-1

· целое беззнаковое – м.б. 8, 16, 32-разрядное: 8 – 256; 16 – 65535; 32 – 231-1

· ближний указатель=32 бита – смещение в какой-либо области памяти

· дальний указатель=48 бит – 32-смещение в текущем сегменте памяти, 17-база сегмента

· цепочка – непрерывный набор байтов

· битовое поле – 32 бита (размер)

· неупакованный двоично-десятичный тип – цифры 0?9 представленные в виде байтов: 9 – 00001001

· упакованный двоично-десятичный тип – каждый байт содержит единицу: 59 – 01011001

Регистры общего назначения

EAX – аккумулятор, для хранения промежуточных результатов

EBX – базовый регистр, для хранения базового адреса области памяти

ECX – счетчик, используется в качестве дан. с повторяющимися действиями

EDX – регистр данных, для хранения промежуточных данных

EBP, ESP – для операций со стеком, EBP – указатель кадра стека, ESP – указатель на вершину стека

ESI, EDI – используется в целочисленных, строковых операциях, ESI – хранит адрес строки, которую пересылаем, EDI – адрес приемника, куда пересылаем

Сегментные регистры

Поддерживают сегментную организацию памяти: – код CS (16 бит), – данные DS, ES, FS, GS, – стек SS (16 бит).

Указатель команд

EIP – 32 бита, указатель смещение в текущем кодовом сегменте.

Регистр флагов

Флаги состояний – тип результатов из выполненных команд (арифметических и логический) – 32 бита.

CF(0) – т.е. флаг переноса

PF(2) – в младшем байте результата находится четное количество единиц

AF(4) – дополнительный перенос был/не было перенос из 3го бита

ZF(6) – результат =/? 0

SF(7) – выставлен/сброшен знаковый бит

OF(11) – =/? перенос в старший бит из старшего бита

DF(10) – флаг направления использования в строковых операциях

Системные флаги – нельзя обратится из прикладных программ.

IF(9) – признак разрешения прерываний

TF(8) – флаг разрешения трассировки

IOPL(12,13) – заносится уровень привилегий ввода-вывода, т.е. может ли программа получить доступ к адресному пространству ВВ

NT(14) – вложенность задачи

RF (16) – флаг возобновления

VM(17) – процессор переводится в режим виртуального 86.

AC(18) – режим контроля выравнивания памяти, использую кэш памяти

VIF(19)-виртуальная версия флага IF

VIP(20)-виртуальный запрос прерывания

ID(21)-флаг доступности команды идентификации CPUID.

Управляющие регистры

CR0(биты: PE-разрешение защиты сопроцессора, EM-эмуляция сопроцессора, TS-переключение задач, ET- индикатор поддержки мат. Процессора, NE – разрешение стандарт. Механизма сообщений, WP- разрешение защиты от записана уровне привилегий супервизора в страницы только для чтения, AM- разрешение контроля выравнивания, NW-запрет сквозной записи кэша и циклов аннулирования, CD- запрет заполнения кэша, PG-включение механизма страничной переадресации памяти)CR1-не используется, CR2- 32битный линейный адрес, по которому был получен последний отказ страницы памяти.

CR3- 20бит-физический базовый адрес таблицы каталога страниц,CR4-биты расширения архитектурных расширений.

Системные адресные регистры:

Регистр GDTR ,IDTR-лимит и базы GDT,IDT;LDTR-селектор LDT,TR-селектор на TSS.

Регистры отладки DR0-DR7.

Регистры тестирования. TR1-TR12.

Загрузка...