Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
379727.doc
Скачиваний:
68
Добавлен:
22.09.2019
Размер:
1.92 Mб
Скачать
  1. Специальные типы регистров защищенного режима мп (ia-32): управляющие, отладки, системные адресные регистры. Селекторы сегментов: - организация в разных режимах.

По сравнению с реальным режимом МП IA-16 в защищенном режиме МП IA-32 регистровый файл увеличился до 32 регистров. К регистрам пользователей (16) добавились системные регистры (16).

Регистры пользователей:

регистры общего назначения (РОНы) 8 регистров по 32 бита,

указатель команд 1 регистр – 32 бита,

регистр состояния (флагов) 1 регистр – 32 бита

сегментные регистры 6 регистров по 16 бит,

В состав системных регистров входят:

регистры системных адресов 4 регистра,

регистры управления, отладки и тестирования 16 регистров.

В защищенном режиме команды межсегментных переходов содержат полный указатель CS (сегмента) и IP (адрес команды в сегменте – offset). Указатель CS, в свою очередь, может указывать на:

- дескриптор сегмента,

- шлюз дескриптора сегмента,

- дескриптор TSS,

- дескриптор шлюза TSS.

Все зависит от выбора стратегии разработчиков ОС.

В первых двух случаях реализуется процедура передачи управления:

прямой передачи управления (без изменения уровней привилегий) или

через шлюз (с возможностью увеличения уровня привилегий, но по командам, предусматривающим возвращение, – например Call).

В двух последних случаях реализуется процедура переключения задач:

прямого переключения задач, если селектор указывает на дескриптор задачи (используется при переключениях задач на одном уровне привилегий),

косвенного переключения задач, если селектор указывает на шлюз задачи (используется при переключениях с изменениями уровня привилегий).

Как и в МП IA-16 с точки зрения использования регистров они не являются классическими регистрами общего назначения. Они могут задаваться по умолчанию (кодом операции, постбайтом и т.д.) По использованию регистров по умолчанию, они делятся на две группы :

регистры данных – eax, ecx, edx и ebx (по возрастанию адресов),

регистры адресов – esp, ebp, esi и edi (по возрастанию адресов)

Регистр ebx, хотя и относят к группе регистров данных, но он же является одним из регистров адреса базы сегмента данных.

При работе с 16-ти битовыми операндами и компонентами адреса используются 16- битовые РОНы – ax, cx, dx, bx, sp, bp, si и di (по возрастанию адресов).

При работе с байтовыми операндами используются 8 – битовые РОНы: al, cl, dl, bl, ah, ch, dh и bh (по возрастанию адресов).

В защищенном режиме по отношению к их содержимому (данные, компоненты адреса) регистры стали более симметричными.

Режим адресации операндов в команде определяется кодом операции, постбайтом и байтом SIB. Режим адресации определяет местонахождение компонент и алгоритм вычисления адреса операнда в памяти.

В защищенном режиме МП IA –32 используются следующие виды адресаций:

непосредственная (константа) MOV еax, 0002h,

прямая (#d – смещение) MOV еbx, [0002h],

регистровая (любой РОН, кроме ebp) MOV еbx, еах,

косвенная регистровая MOV еах, [еbx],

базовая со смещением MOV еах, [еbx+001Ah],

базовая индексная без смещением MOV еах, [еbp+esi*8],

базовая индексная со смещением MOV еах, [еbp+esi*8+1Ah],

Изменилось и содержимое сегментных регистров. В МП IA-16 сегментные регистры содержат базовые адреса сегментов, а в МП IA 32 – селекторы сегментов.

Сегментные регистры в защищенном режиме дополняются 64-х разрядными регистрами дескрипторов сегментов. В системе не предусмотрены ни одной команды прямого обращения к ним. В этом смысле они программно невидимы. Это регистры аппаратных средств системы защиты программ от взаимных помех.

Назначение сегментных регистров в защищенном режиме остались прежними: использование в процедуре трансляции адресов, но сама функция и содержимое этих регистров существенно изменились.

Селекторы сегментов в защищенном режиме МП IA 32 – это указатели номера строки таблиц дескрипторов, в которых находятся заданные дескрипторы. Преобразование логического адреса в линейный (адрес плоской памяти) производится процедурой трансляции сегмента.

МП содержит 6 шестнадцати битных сегментных регистров:

ES – дополнительного сегмента данных,

CS – сегмента кода,

SS – сегмента стека,

DS – сегмента данных,

FS – дополнительного сегмента данных,

GS – дополнительного сегмента данных.

Использование регистров CS, SS, DS и ES принято по умолчанию. Для использования регистров FS и GS необходима явная ссылка на них в префиксе замены сегментов. Использование сегментных регистров зависит от режима работы МП.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]