logo
несколько программ / bsp33

0Fh - байт отключения

Байт отключения 0Fh используется процессорами 80286, 80386, 80486 и Pentium для определения способа возврата из защищенного режима в реальный после аппаратного сброса.

Вы, вероятно, знаете, что эти процессоры могут работать либо в реальном режиме, который соответствует режиму работы процессора 8086, либо в защищенном. Защищенный режим работы используется такими операционными системами, как Microsoft Windows, IBM OS/2 и UNIX. В этом режиме процессор может непосредственно адресовать всю память, лежащую выше границы 1 Мбайт.

Подробное рассмотрение защищенного режима работы мы привели в 6 томе «Библиотеки системного программиста», который так и называется – «Защищенный режим процессоров Intel 80286/80386/80486». Здесь же мы только кратко расскажем о переходе процессора 80286 из реального режима в защищенный и обратно для иллюстрации использования ячейки памяти CMOS с адресом 0Fh.

Для перевода процессора 80286 из реального режима в защищенный можно использовать специальную команду LMSW:

mov ax,1

lmsw ax

Разумеется, двух строк, приведенных выше, недостаточно для правильной работы процессора в защищенном режиме.

Для того, чтобы вернуть процессор 80286 из защищенного режима в реальный, необходимо выполнить аппаратный сброс (отключение) процессора. Это можно сделать следующим образом:

mov ax, 0FEh ; команда отключения

out 64h, ax

Перед выдачей команды отключения программа должна записать в ячейку 0Fh памяти CMOS причину отключения:

Значение

Причина отключения

0

Программный сброс при помощи комбинации клавиш <Ctrl-Alt-Delete>или неожиданный сброс. Выполняется обычный перезапуск системы, но процедура тестирования при включении питания не запускается

1

Сброс после определения объема памяти

2

Сброс после тестирования памяти

3

Сброс после обнаружения ошибки четности в оперативной памяти

4

Сброс с запросом перезагрузки

5

После сброса перезапускается контроллер прерываний, затем управление передается по адресу, который находится в области данных BIOS с адресом 0000h:0467h

6, 7, 8

Сброс после выполнения проверки работы процессора в защищенном режиме

9

Сброс после выполнения копирования блока памяти из основной памяти в расширенную

0Ah

После сброса управление немедленно передается по адресу, взятому из области данных BIOS с адресом 0000h:0467h

Для перевода процессоров 80386, 80486 и Pentium из реального режима в защищенный и обратно можно использовать загрузку специального управляющего регистра CR0 обычной командой MOV. Однако будет работать и метод, основанный на применении команды LMSW и команды отключения.

Вы можете использовать сведения о команде отключения для организации программного перезапуска системы.