Защищенный режим процессоров Intel


Подготовка к переключению в защищённый режим - часть 2


Дальнейшие действия определяются содержимым этой ячейки.

Байт состояния отключения 0Fh используется BIOS для определения способа возврата из защищённого режима в реальный после аппаратного сброса. В таблице 3 перечислены возможные значения для байта состояния отключения.

Таблица 3. Значения байта состояния отключения.

Значение Причина отключения
0 Программный сброс при нажатии комбинации клавиш CTRL-ALT-DEL или неожиданный сброс. Выполняется обычный перезапуск системы, но процедуры тестирования при включении питания не выполняются.
  • 1
  • Сброс после определения объёма памяти.
  • 2
  • Сброс после тестирования памяти.
  • 3
  • Сброс после обнаружения ошибки в памяти (контроль чётности).
  • 4
  • Сброс с запросом перезагрузки.
  • 5
  • После сброса перезапускается контроллер прерываний, затем управление передаётся по адресу, который находится в области данных BIOS 0040h:0067h.
  • 6,7,8 Сброс после выполнения теста работы процессора в защищённом режиме.
    9 Сброс после выполнения пересылки блока памяти из основной памяти в расширенную.
    0Ah После сброса управление немедленно передаётся по адресу, взятому из области данных BIOS 0040h:0067h.

    Для обеспечения возврата в реальный режим после сброса по адресу, записанному в области данных BIOS 0040h:0067h можно использовать байты 5 и 0Ah.

    Из за особенностей обработки прерываний в защищённом режиме, которые мы рассмотрим в третьей главе, перед переключением в защищённый режим необходимо перепрограммировать контроллер прерываний. Восстановить состояние контроллера после возврата в реальный режим можно автоматически, если использовать значение 5 для байта состояния отключения.

    Если же вы не используете прерывания и, соответственно, не перепрограммируете контроллер прерываний, можно использовать значение 0Ah, при этом после сброса управление будет сразу передано по адресу, взятому из области данных BIOS 0040h:0067h. В этом случае затраченное на возврат в реальный режим время будет меньше.

    В следующем фрагменте программы мы записываем в ячейку CMOS-памяти с адресом 0Fh значение 5.




    Начало  Назад  Вперед