ВУЗ:
Составители:
30
GDT.
В принципе теперь можно перейти в защищенный режим. Однако
мы запускаем нашу программу под управлением DOS (а как ее еще можно
запустить?) и естественно завершить ее также обычным образом, чтобы не
нарушить работоспособность системы. Но в защищенном режиме
запрещены любые обращения к функциям DOS или BIOS. Причина этого
совершенно очевидна – и DOS, и BIOS являются программами реального
режима, в которых широко используется сегментная адресация реального
режима, т.е. загрузка в сегментные регистры сегментных адресов. В
защищенном же режиме в сегментные регистры загружаются не
сегментные адреса, а селекторы. Кроме того, обращение к функциям DOS
и BIOS осуществляется с помощью команд int с определенными номерами,
а в защищенном режиме эти команды приведут к совершенно другим
результатам. Следовательно, программу, работающую в защищенном
режиме, нельзя завершить средствами DOS. Сначала ее надо вернуть в
реальный режим.
Возврат в реальный режим можно осуществить сбросом процессора.
Действия процессора после сброса определяются одной из ячеек КМОП-
микросхемы – байтом состояния отключения, располагаемым по адресу Fh.
В частности, если в этом байте записан код Ah, после сброса управление
немедленно передается по адресу, который извлекается из двухсловной
ячейки 40h:67h, расположенной в области данных BIOS. Таким образом,
для подготовки возврата в реальный режим необходимо в ячейку 40h:67h
записать адрес возврата, а в байт Fh КМОП-микросхемы занести код Ah.
Приведенный способ возврата в реальный режим использовался в
процессорах i286 (так как другого способа возврата в нем предусмотрено
не было).
В процессорах, начиная с i386, переход из реального режима в
защищенный и обратно может осуществляться с использованием
GDT. В принципе теперь можно перейти в защищенный режим. Однако мы запускаем нашу программу под управлением DOS (а как ее еще можно запустить?) и естественно завершить ее также обычным образом, чтобы не нарушить работоспособность системы. Но в защищенном режиме запрещены любые обращения к функциям DOS или BIOS. Причина этого совершенно очевидна – и DOS, и BIOS являются программами реального режима, в которых широко используется сегментная адресация реального режима, т.е. загрузка в сегментные регистры сегментных адресов. В защищенном же режиме в сегментные регистры загружаются не сегментные адреса, а селекторы. Кроме того, обращение к функциям DOS и BIOS осуществляется с помощью команд int с определенными номерами, а в защищенном режиме эти команды приведут к совершенно другим результатам. Следовательно, программу, работающую в защищенном режиме, нельзя завершить средствами DOS. Сначала ее надо вернуть в реальный режим. Возврат в реальный режим можно осуществить сбросом процессора. Действия процессора после сброса определяются одной из ячеек КМОП- микросхемы – байтом состояния отключения, располагаемым по адресу Fh. В частности, если в этом байте записан код Ah, после сброса управление немедленно передается по адресу, который извлекается из двухсловной ячейки 40h:67h, расположенной в области данных BIOS. Таким образом, для подготовки возврата в реальный режим необходимо в ячейку 40h:67h записать адрес возврата, а в байт Fh КМОП-микросхемы занести код Ah. Приведенный способ возврата в реальный режим использовался в процессорах i286 (так как другого способа возврата в нем предусмотрено не было). В процессорах, начиная с i386, переход из реального режима в защищенный и обратно может осуществляться с использованием 30
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »