Скачиваний:
58
Добавлен:
16.04.2013
Размер:
119.3 Кб
Скачать

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

В состав этой группы 32-битных регистров входят регистры управления CR4 –CR0, регистры системных адресовGDTR,LDTR,IDTR,TRи регистры отладкиDR7 –DR0. Эти регистры доступны только в защищенном режиме для программ, имеющих максимальный уровень привилегий 0. Для доступа к системным регистрам используются специальные инструкции пересылки данных (см. разд.2.1).

Управляющие регистры (ControlRegisters) хранят признаки состояния процессора общие для всех задач. Форматы содержимого регистров управленияCR0,CR2, CR3 приведены на рис.$.7,8,9. РегистрCR1 в процессорах доPentium4 не используется (резервирован для последующих моделей).

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

NE

ET

TS

ЕМ

MP

PE

PG

PC

NW

AM

WP

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

Рис. $.7. Форматы содержимого регистра управления CR0

Регистр CR0обеспечивает общее управление режимами работы процессора. Назначение бит регистра CR0 представлено ниже.

РЕ (ProtectionEnable) – разрешение защиты. Установка этого флага инструкциейLMSWилиLOAD CR0переводит процессор в защищенный режим, возвращение в реальный режим (сброс флага) возможен только по инструкцииLOAD CR0. Сброс бита РЕ является частью довольно длинной последовательности инструкций, подготавливающих корректное переключение в реальный режим.

МР (Monitor Processor Extension) – мониторинг сопроцессора. Установка МР=1 позволяет вызывать исключение #NMпо первой же ожидающей инструкцииFPUпосле переключения задач (приTS=1) для сохранения и восстановления контекста сопроцессора.

ЕМ (Processor Extension Emulated) – эмуляция сопроцессора. Установка этого флага вызывает появление исключения #NM(или прерывания от сопроцессора) при каждой инструкции, относящейся к сопроцессору, что позволяет прозрачно осуществлять его программную эмуляцию.

  • Сочетание МР=1, ЕМ=0 используется при наличии сопроцессора, а МР=0, ЕМ=1 при его программной эмуляции.

TS(TaskSwitch) – флаг переключения задач, устанавливается автоматически при переключении задач. ПриTS=1 и МР=1 следующая инструкция, относящаяся к сопроцессору, вызовет исключение #NM, что позволяет программно определить, относится ли контекст сопроцессора к текущей задаче. Бит сбрасывается инструкциейCLTS.

  • Сочетание МР=0, ЕМ=0, TS=0, устанавливаемое по аппаратному сбросу, обеспечивает полную совместимость с 8086/88 (исключение #NMне вырабатывается).

  • В табл. $.1 обобщаются действия процессора при разных сочетаниях флагов TS,EMиMP, в случае встречи инструкцииFPU.

Таблица $.1

Действия выполняемые fpUинструкциями для различных сочетаний флаговTs,eMиMp

Флаги CR0

Тип инструкции FPU

EM

MP

TS

Обычная

WAIT/FWAIT

0

0

0

Исполнение

Исполнение

0

0

1

Вызов #NM

Исполнение

0

1

0

Исполнение

Исполнение

0

1

1

Вызов #NM

Вызов #NM

1

0

0

Вызов #NM

Исполнение

1

0

1

Вызов #NM

Исполнение

1

1

0

Вызов #NM

Исполнение

1

1

1

Вызов #NM

Вызов #NM

ЕТ (ExtensionType) – в процессорах семействP5+ не используется (резервирован); в процессорахIntel386, 486 установка значения ЕТ=1 указывает на включение в систему математических сопроцессоровIntel387DX;

NE (Numericerror) – управление прерываниямиFPU, при установке значения битаNE=1 ошибки, возникающие при выполнении инструкции FPU, вызывают исключение типа #MF(ошибка FPU) при выборке следующей инструкции FPU; при установке значенияNE=0 ошибка FPU вызывает выдачу на соответствующий вывод процессора сигналаFERR#=0, который поступает во внешний контроллер прерываний (этот способ обслуживания прерываний FPU реализуется в персональных компьютерах);

WP (WriteProtect) – защита от записи, при установке значения битаWP=1 программам супервизора, имеющим уровень привилегий 0-2, запрещается запись на страницы пользователя предназначенные только для чтения; при значенииWP=0 такая запись разрешена;

AM (AlignmentMask) – управление проверкой выравнивания, разрешает при установке значения бита АМ=1 проверку выравнивания адресов по границам слов (кратные двум) или двойных слов (кратные четырем) выборке операндов из памяти, если в регистреEFLAGSустановлено значение бита АС=1 и выполняемая программа имеет уровень привилегии 3 (программа пользователя);

NW (NotWrite-through) – запрещение записи в кэш-память, совместно с битомCDопределяет режим работы внутренней кэш-памяти процессора;

CD(CacheDisable) – запрещение заполнения кэш-памяти, совместно с битом NW определяет режим работы внутренней кэш-памяти процессора;

PG (PagingEnable) – разрешение страничной трансляции адреса, при установке значенияPG=1 обеспечивает страничную адресацию памяти в защищенном режиме (см. табл.$.2).

Таблица $.2.

Соседние файлы в папке M4