Инициализация сегментных регистров выполняется программно с помощью команд, рассматриваемых ниже.
Регистры селекторов TR и LDTR содержат селекторы, с помощью которых из таблицы GDT выбираются дескрипторы с базовыми адресами системных сегментов LDT и TSS отдельных задач.
Сегментные регистры CS, SS, DS, ES, FS, GS и регистры TR, LDTR, определяющие системные сегменты LDT и TSS, связаны с 8-байтовыми программно недоступными кэш‑регистрами дескрипторов соответствующих сегментов. В защищенном режиме с помощью селектора из соответствующей дескрипторной таблицы выбирается дескриптор сегмента. При разрешенном обращении к сегменту дескриптор запоминается в одном из указанных кэш-регистров процессора.
Регистры управления. 32-разрядные регистры управления CR0, CR2, CR3, CR4 хранят признаки состояния процессора, общие для всех задач. В процессоре Pentium они обеспечивают аппаратную поддержку страничного механизма адресации (CR2, CR3), фиксируют общее состояние процессора (CR0) и содержат ряд дополнительных сигналов управления (СR4). Для доступа к регистрам управления процессора Pentium используются привилегированные команды загрузки и сохранения MOV CRn, ... и MOV ..., CRn.
Регистр управления CR0 содержит системные флаги, которые управляют режимами работы процессора или показывают состояние, относящееся ко всему процессору, а не к выполнению отдельной задачи. Отдельные биты регистра CR0 разрешают защищенный режим (бит PE), страничную организацию памяти (бит PG), обеспечивают управление устройством вычислений с плавающей точкой FPU (биты МР, ЕМ), прерываниями FPU (бит NE), защитой от записи страницы (бит WP), разрешением/запрещением заполнения внутреннего кэш-памяти (бит CD) и способом обновления кэш-памяти (бит NW). Младшие 16 бит регистра CR0 образуют слово состояния машины MSW. Для загрузки слова состояния в регистр CR0 можно использовать команду LMSW. Формат регистра CR0 показан на рис. Регистр управления CR0 содержит следующие биты управления и состояния.
Бит РЕ (Protection Enable) - разрешение защиты. Установка этого бита в 1 командой LMSW или командой MOV CR0, . переводит процессор в защищенный режим. Обратное переключение процессора в реальный режим реализуется только командой MOV CR0, . при этом сброс бита РЕ является частью программной процедуры, состоящей из многих инструкций, которые подготавливают корректное переключение в реальный режим.
Бит PG (Paging Enable) предназначен для управления включением страничного механизма адресации. Совместно с битом PE бит PG определяет режим работы процессора (Табл. )
Режимы работы процессора Таблица
PG |
PE |
Режим |
0 |
0 |
Реальный режим - режим микропроцессора 8086 с возможностью увеличения разрядности данных до 32 с помощью префикса Operand-Size (код 66h) |
0 |
1 |
Защищенный режим - режим процессора 80286 с возможностью увеличения разрядности данных до 32 с помощью префикса |
1 |
0 |
Недопустимая комбинация |
1 |
1 |
Защищенный режим с использованием механизма страничной адресации |
Биты MP (Monitor coProcessor) и EM (Emulation) обеспечивают программную совместимость с программами, написанными для процессоров х86 без встроенного сопроцессора.
Бит МР управляет функцией команды WAIT, которая используется для синхронизации действий с сопроцессором. В процессоре Pentium рекомендуется, чтобы бит МР был установлен.
Бит эмуляции сопроцессора ЕМ используется для обнаружения команд FPU. При установленном флаге ЕМ любая команда устройства с плавающей точкой FPU или команда WAIT вызывает особый случай 7, обработчик которого осуществляет программную эмуляцию команд FPU.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.