Лекции по Вычислительным машинам, системам и сетям   

3. Тридцатидвухразрядные процессоры фирмы Intel

3.27. Переключение из защищенного режима в реальный

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

1. Если включен страничный механизм:

- перейти к странице с тождественным отображением адресов, т.е. к странице, для которой Ал = Аф; если этого не сделать, то после выключения страничного механизма можно оказаться в самом неожиданном месте памяти;

- выключить страничный механизм (сбросить бит PG в 0);

- обнулить регистр cr3, при этом автоматически очистится буфер TLB.

2. Обеспечить загрузку в теневую часть cs предела сегмента кода, равного 64 Кбайта.

3. Обеспечить загрузку в теневые части остальных сегментных регистров: предел равен 64 Кбайта, G = 0, D = 0, P = 1.

4. Запретить внешние прерывания.

5. Сбросить бит РЕ. После этого мы уже в реальном режиме.

6. Рекомендуется (для МП 386 и МП 486) первой командой после переключения ставить команду jmp far на следующую команду программы. Эта команда заносит правильное значение в регистр cs и очищает очередь от команд защищенного режима.

7. Восстановить таблицу прерываний реального режима и загрузить ее начальный адрес в idtr.

8. Задать правильные значения в остальных сегментных регистрах.

9. Разрешить внешние прерывания.

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



*****
© Банк лекций Siblec.ru
Формальные, технические, естественные, общественные, гуманитарные, и другие науки.