Системное программное обеспечение. Особенности программирования 32-разрядных процессоров. Рощин А.В. - 37 стр.

UptoLike

Составители: 

37
Поэтому после перехода в реальный режим необходимо загрузить в
используемые далее сегментные регистры соответствующие сегментные
адреса. В строках 148 – 151 в регистры DS и SS записываются сегментные
адреса соответствующих сегментов.
При рассмотренном варианте возврата в реальный режим (без сброса
процессора) не надо сохранять кадр стека, так как содержимое регистра SP
в этом случае не разрушается, а регистр SS мы уже инициализировали.
Для восстановления работоспособности системы следует также
разрешить прерывания (маскируемыестрока 155, немаскируемые
строки 156, 157), после чего программа может продолжаться уже в реаль-
ном режиме. В рассмотренном примере для проверки работоспособности
системы в этом режиме на экран выводится сообщениеReal mode nowс
помощью функции DOS 09h. Для наглядности в сообщение включены Esc
последовательности для смены цвета символов и фона (красные символы
на зеленом фоне). Осуществлена смена цвета символов и фона может быть
лишь в том случае, если в DOS установлен драйвер ANSI.SYS. Если после
перехода в реальный режим при установленном драйвере ANSI.SYS
сообщение будет выведено без изменения цветов, это может говорить об
ошибках защищенного режима.
Перед завершением программы, она ожидает ввода с клавиатуры
(функция 0 прерывания int 16h), чтобы можно было успеть увидеть
содержимое экрана.
Программа завершается обычным образом функцией DOS 4Ch.
Нормальное завершение программы и переход в DOS тоже в какой-то мере
свидетельствует о ее правильности.
     Поэтому после перехода в реальный режим необходимо загрузить в
используемые далее сегментные регистры соответствующие сегментные
адреса. В строках 148 – 151 в регистры DS и SS записываются сегментные
адреса соответствующих сегментов.
     При рассмотренном варианте возврата в реальный режим (без сброса
процессора) не надо сохранять кадр стека, так как содержимое регистра SP
в этом случае не разрушается, а регистр SS мы уже инициализировали.
     Для восстановления работоспособности системы следует также
разрешить прерывания (маскируемые – строка 155, немаскируемые –
строки 156, 157), после чего программа может продолжаться уже в реаль-
ном режиме. В рассмотренном примере для проверки работоспособности
системы в этом режиме на экран выводится сообщение ‘Real mode now’ с
помощью функции DOS 09h. Для наглядности в сообщение включены Esc
последовательности для смены цвета символов и фона (красные символы
на зеленом фоне). Осуществлена смена цвета символов и фона может быть
лишь в том случае, если в DOS установлен драйвер ANSI.SYS. Если после
перехода в реальный режим при установленном драйвере ANSI.SYS
сообщение будет выведено без изменения цветов, это может говорить об
ошибках защищенного режима.
     Перед завершением программы, она ожидает ввода с клавиатуры
(функция 0 прерывания int 16h), чтобы можно было успеть увидеть
содержимое экрана.
     Программа завершается обычным образом функцией DOS 4Ch.
Нормальное завершение программы и переход в DOS тоже в какой-то мере
свидетельствует о ее правильности.




                                     37