H - байт отключения
Байт отключения 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 и команды отключения.
Вы можете использовать сведения о команде отключения для организации программного перезапуска системы.