Программная модель МП-системы на основе процессора Pentium. Особенности организации памяти и допустимые способы адресации, страница 10

Инициализация сегментных регистров выполняется программно с помощью команд, рассматриваемых ниже.

Регистры  селекторов 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.