Защищенный режим процессоров Intel


Интерфейс HIMEM.SYS


Как мы уже говорили, назначение драйвера HIMEM.SYS и его возможности были подробно описаны во второй части второго тома "Библиотеки системного программиста" (глава 10). Поэтому здесь мы не будем подробно рассматривать эти функции и говорить об их использовании, а приведём только краткий перечень:

Таблица 8. Функции XMS.

00h Получить версию XMS (XMS - eXtended Memory Specification - спецификация расширенной памяти).
01h Запросить управление областью старшей памятью HMA.
02h Освободить область HMA.
03h Глобальное разрешение линии A20.
04h Глобальное запрещение линии A20.
05h Локальное разрешение линии A20.
06h Локальное запрещение линии A20.
07h Определение текущего состояния линии A20.
08h Определение размера свободной расширенной памяти.
09h Получить блок расширенной памяти EMB.
0Ah Освободить блок EMB.
0Bh Копирование блоков расширенной памяти EMB.
0Ch Блокирование блока EMB. Для заблокированного EMB можно определить его физический адрес.
0Dh Разблокирование EMB.
0Eh Получить информацию об индексе EMB.
0Fh Изменить размер блока EMB.
10h Запросить управление областью UMB.
11h Освободить область UMB.

Для проверки наличия в системе драйвера, поддерживающего спецификацию XMS, необходимо загрузить в регистр AX значение 4300h и вызвать прерывание INT2Fh. Если в регистре AL окажется значение 80h, драйвер установлен. В этом случае можно получить адрес управляющей программы, которую надо вызывать для выполнения функций. Если загрузить в регистр AX значение 4310h и вызвать прерывание INT 2Fh, в регистрах ES:BX будет записан искомый адрес.

Как можно заметить, функции XMS позволяют управлять линией A20 и копировать блоки расширенной памяти. Но вы не найдёте среди них функции для перехода в защищённый режим!

И это не случайно. Всё дело в том, что для работы с расширенной памятью драйвер HIMEM.SYS, реализующий спецификацию XMS, не использует защищённый режим работы процесора!

Как это может быть? Ведь процессор, находясь в реальном режиме не может адресовать память за границей первого мегабайта.




- Начало -  - Назад -  - Вперед -