Assembler - язык неограниченных возможностей


Функции DPMI управления дескрипторами - часть 2


/p>


INT 31h, АХ = 0Ah — Создать копию дескриптора

Ввод: АХ = 000Ah
ВХ = селектор (сегмента кода или данных)
Вывод: если CF = 0, АХ = селектор на сегмент данных с теми же базой и лимитом


INT 31h, AX = 0Bh — Прочитать дескриптор

Ввод: АХ = 000Bh
ВХ = селектор
ES:EDI = селектор:смещение 8-байтного буфера
Вывод: если CF = 0, в буфер помещен дескриптор


INT 31h, AX = 0Ch — Загрузить дескриптор

Ввод: АХ = 000Ch
ВХ = селектор
ES:EDI = адрес 8-байтного дескриптора
Вывод: CF = 0, если не было ошибок


INT 31h, AX = 0Dh — Выделить определенный дескриптор

Ввод: АХ = 000Dh
ВХ = селектор на один из первых 16 дескрипторов (значения селектора 04h – 7Ch)
Вывод: CF = 0, если нет ошибок (CF = 1 и АХ = 8011h, если этот дескриптор занят)


Этого набора функций, а точнее пары функций 00 и 0Ch, достаточно для того, чтобы полностью настроить режим flat (или любой другой) после переключения в защищенный режим. Но прежде чем это осуществить, нам надо познакомиться с тем, как в DMPI сделан вызов обработчиков прерываний реального режима, иначе наша программа просто не сможет себя проявить.





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