|
|
Процессоры i80386 и i80486 могут легко переключаться из реального режима в защищённый и обратно с помощью команды MOV. Младший бит PE системного регистра CR0 (см. приложение) определяет текущий режим работы процессора. Если этот бит установлен в 1, процессор работает в защищённом режиме, а если в 0 - в реальном. Для переключения процессора из реального режима в защищённый можно использовать, например, такую последовательность команд: mov ax,cr0 or ax,1 mov cr0,ax Для совместимости с процессором i80286 оставлена возможность переключения в защищённый режим с помощью команды LMSW. Для возврата в реальный режим необходимо сбросить бит PE: mov ax,cr0 and ax,0fffe mov cr0,ax Таким образом, существует более красивый способ возврата в реальный режим, чем выполнение аппаратного сброса или перевод процессора в состояние отключения (конечно, вы по-прежнему можете пользоваться старым способом перевода процессора в реальный режим). Перед переключением в реальный режим из защищённого программа должна выполнить следующие действия:
Как видите, процедура возврата в реальный режим сильно упростилась и ускорилась по сравнению с использованной для процессора i80286. Однако большинство программ, переключившись в защищённый режим, никогда больше не возвращаются назад. Они либо всё время работают в защищённом режиме, либо переключаются в режим виртуального процессора 8086.
|
Дизайн: Piton Alien |