Процессор возвращается в режим реальных адресов, если программное обеспечение очистит бит P E(включение защиты) в регистре CR0 командой MOV в CR0 (для совместимости с процессором 80286 бит PE можно устанавливать с помощью команды LMSW, но нельзя очищать). Процедура возвращения в режим реальных адресов должна сделать нижеследующее:
Если включено разбиение на страницы выполняется следующее:
Передать управление линейным адресам, которые имеют тождественное отображение, т.е. линейные адреса эквивалентны физическим.
Очистить бит PG в регистре CR0.
Заполнить нулями регистр CR0 для подавления TLB.
2. Передать управление сегменту с границей 64К (0FFFFH). Это загрузит регистр CS с требуемой для реального режима границей.
3. Загрузить в сегментные регистры SS, DS, ES, FS, и GS селектор дескриптора, содержащего соответствующие реальному режиму значения: - Граница = 64К (0FFFFH) - Байтовая дробность (G = 0) - Расширение вверх (E = 0) - Доступ для записи (W = 1) - Присутствие (P = 1) - База = любое значение. Необходимо заметить, что если регистры сегмента не будут перезагружены выполнение продолжится, используя дескрипторы, загруженные при нахождении в защищенном режиме.
Запретить прерывания. Командой CLI запрещаются прерывания INTR. Прерывания NMI можно запретить с внешней электрической цепи.
Очистить бит PE в регистре CR0.
Перейти на программу реального режима используя команды дальнего перехода (far JMP). Это очищает очередь команд и устанавливает правильные значения прав доступа в регистр CS.
Используя команду LIDT загрузить базу и границу таблицы векторов прерывания реального режима.
Разрешить прерывания.
Загрузить сегментные регистры в соответствии с требованиями программы реального режима.