Управляющие регистры
В микропроцессоре 80386, дополнительно к регистру флагов EFLAGS и указателю инструкций EIP, имеются и другие управляющие регистры. Управляющий регистр CR0 (control register) идентичен регистру состояния машины MSW (machine status word) микропроцессора 80286, за исключением того, что он 32-разрядный, а не 16-разрядный регистр. Дополнительными управляющими регистрами являются CR1, CR2 и CR3.
На рис. 6.5. показана структура управляющих регистров микропроцессора 80386.
Рис. 6.5. Структура управляющих регистров микропроцессора 80386 |
Управляющий регистр CR1 в микропроцессоре 80386 не используется, однако зарезервирован для будущих изделий. Управляющий регистр CR2 фиксирует линейный адрес, по которому был получен последний отказ страницы памяти. Наконец, управляющий регистр CR3 фиксирует базовый адрес таблицы страниц. Младшие 12 разрядов с 0 по 11 из 32-разрядного регистра содержат нули и объединяются с остальными разрядами регистра, чтобы определить начало таблицы страниц размером 4К.
Регистр CR0 имеет ряд специальных управляющих битов, которые в микропроцессоре 80386 определяются следующим образом:
□ PG
Бит PG (paging enable) предназначен для выбора преобразования таблицы страниц из линейных адресов в физические адреса при PG = 1. Страничная переадресация памяти позволяет присваивать линейному адресу любую физическую ячейку памяти.
□ ЕТ
Бит ЕТ (extension type) является индикатором поддержки инструкций математического сопроцессора. Если ЕТ — 0, то выбран сопроцессор 80287, а если ЕТ = 1, то сопроцессор 80387. Этот бит был добавлен, чтобы отражать то обстоятельство, что в данной системе имеется сопроцессор 80387.
□ TS
Бит TS (task switch) указывает, что микропроцессор выполнил переключение задач (изменение содержимого регистра задачи TR в защищенном режиме устанавливает бит TS). Если бит TS установлен, то команда цифрового сопроцессора приводит к прерыванию типа 7 (сопроцессор недоступен).
□ ЕМ
Бит ЕМ (emulate coprocessor) устанавливается для вызова прерывания типа 7 при попытке выполнения каждой ESC-команды, т. е. команды, относящейся к сопроцессору. Это часто используется для программной эмуляции сопроцессора. Эмуляция снижает стоимость системы, но для выполнения эмулированных команд сопроцессора часто требуется больше времени, примерно где-то в 100 раз.
□ MP
Бит MP (monitor coprocessor) устанавливается для вызова прерывания типа 7 при выполнении каждой команды wait, когда установлен бит TS.
□ РЕ
Бит РЕ (protection enable) устанавливается, чтобы перевести микропроцессор 80386 в защищенный режим. Он может также сбрасываться, чтобы начать довольно длинную последовательность инструкций переключения в реальный режим работы. В микропроцессоре 80286 этот бит может только устанавливаться. Микропроцессор 80286 не способен переходить обратно в реальный режим работы без выполнения аппаратного сброса, что исключает его использование в большинстве систем, использующих защищенный режим.
Дата добавления: 2016-03-10; просмотров: 1373;