AX=0102h
BX – необходимый размер блока памяти
DX – селектор блока памяти
Выход:
CF=0, если функция выполнена успешно
CF=1, если при выполнении функции возникли ошибки
AX – код ошибки DOS
BX – размер наибольшего доступного блока (в параграфах)
Описание. Данная функция изменяет размер памяти DOS, выделенной функцией 0100h.
Примечания.
Увеличение размера блока памяти часто может привести к ошибке, если после данного блока был выделен другой блок, если размер увеличиваемого блока больше 64 Кбайт или если после дескриптора этого блока памяти был выделен другой дескриптор.
DPMI, функция 0200h Получить вектор прерывания реального режима
Вход:
AX=0200h
BL – номер прерывания
Выход:
CF=0
CX:DX – сегмент: смещение вектора прерывания реального режима
Описание. Данная функция возвращает вектор прерывания реального режима.
Примечания.
Значение, возвращаемое в CX – сегмент, не селектор. Попытки использовать его как селектор приведут к исключению общей защиты памяти.
DPMI, функция 0201h Установить вектор прерывания реального режима
Вход:
AX=0201h
BL – номер прерывания
CX:DX – сегмент: смещение вектора прерывания реального режима
Выход:
CF=0, если функция выполнена успешно
CF=1, если при выполнении функции возникли ошибки
Описание. Данная функция устанавливает вектор прерывания реального режима.
Примечания. Значение в CX должно быть сегментом, а не селектором.
DPMI, функция 0202h Получить вектор обработчика исключения процессора
Вход:
AX=0202h
BL – номер исключения (00h-1Fh)
Выход:
CF=0, если функция выполнена успешно
CX:(E)DX – селектор: смещение
CF=1, если при выполнении функции возникли ошибки
Значение, переданное в BL, некорректно
Описание. Данная функция возвращает вектор обработчика исключения процессора.
Примечания.
Значение в CX – селектор защищенного режима, а не сегмент реального. В 32-битном режиме значение смещения возвращается в регистре EDX.
DPMI, функция 0203h Установить вектор обработчика исключения процессора
Вход:
AX=0203h
BL – номер исключения (00h-1Fh)
CX:(E)DX – селектор: смещение
Выход:
CF=0, если функция выполнена успешно
CF=1, если при выполнении функции возникли ошибки
Значение, переданное в BL, некорректно
Описание. Данная функция устанавливает вектор обработчика исключения процессора.
Примечания.
Значение в CX должно быть существующим селектором защищенного режима, а не сегментом реального. В 32-битном режиме значение смещения возвращается в регистре EDX.
DPMI, функция 0204h Получить вектор прерывания защищенного режима
Вход:
AX=0204h
BL – номер прерывания
Выход:
CF=0
CX:(E)DX – селектор: смещение
Описание. Данная функция возвращает вектор обработчика прерывания защищенного режима.
Примечания.
Значение в CX – селектор защищенного режима, а не сегмент реального. В 32-битном режиме значение смещения возвращается в регистре EDX.
DPMI, функция 0205h Установить вектор прерывания защищенного режима
Вход:
AX=0204h
BL – номер прерывания
CX:(E)DX – селектор: смещение
Выход:
CF=0, если функция выполнена успешно
CF=1, если при выполнении функции возникли ошибки
Описание. Данная функция устанавливает вектор обработчика прерывания защищенного режима.
Примечания.
Значение в CX должно быть существующим селектором защищенного режима, а не сегментом реального. В 32-битном режиме значение смещения возвращается в регистре EDX.
DPMI, функция 0300h Вызвать обработчик прерывания реального режима
Вход:
AX=0300h
BL – номер прерывания
BH – флаги:
бит 0 – сбросить контроллер прерывания и адресную линию A20
биты 1–7 – зарезервированы и должны быть равны нулю
CX – количество слов, которые надо скопировать из стека защищенного режима в стек реального
ES:(E)DI – селектор: смещение структуры вызова реального режима (Таблица Г-1)
Таблица Г-1. Формат структуры вызова реального режима
Выход:
CF=0, если функция выполнена успешно
ES:(E)DI – селектор: смещение модифицированной структуры вызова реального режима
CF=1, если при выполнении функции возникли ошибки
Описание. Данная функция вызывает обработчик прерывания реального режима.
Примечания.
Поля CS и IP этой функцией игнорируются. Функция вызывает обработчик, адрес которого указан в таблице прерываний. Если поля SS и SP равны нулю, то стек выделяется DPMI. 32-битные программы должны использовать ES:EDI для адресации структуры.
Читать дальше
Конец ознакомительного отрывка
Купить книгу