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



Получить блок памяти из пула свободной памяти DOS


С помощью этой функции программа может получить от DOS блок памяти, лежащий в пределах первого мегабайта адресного пространства. Для полученного блока памяти функция создаёт один или несколько дескрипторов (в зависимости от размера блока) и возвращает как сегмент блока для реального режима, так и базовый селектор для доступа к блоку в защищённом режиме.

Если размер запрошенного блока превышает 64 килобайта, функция создаст массив дескрипторов и возвратит базовый селектор. Для получения остальных селекторов вы сможете использовать значение инкремента, полученное после вызова функции 0003h.

Дескрипторы, созданные этой функцией, можно освобождать только с помощью функции 0101h. Регистры на входе AX 0100h BX Размер блока в параграфах (напомним, что размер параграфа составляет 16 байт). Регистры на выходе: CARRY 0, если функция выполнилась без ошибки, 1, если произошла ошибка. В случае ошибки регистр AX содержит код ошибки, полученный от DOS: 07h - разрушен блок MCB; 08h - слишком большой размер заказанного блока. В последнем случае регистр BX содержит максимально возможный размер блока в параграфах. AX Сегмент реального режима полученного блока. DX Селектор для доступа к полученному блоку в защищённом режиме.


Содержание  Назад  Вперед