Системное программное обеспечение. Рощин А.В. - 59 стр.

UptoLike

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

59
Описание: Распределяет блок памяти размером в BX параграфов,
возвращая сегментный адрес этого блока в AX (блок начинается с
AX:0000). Если распределение неудачно, взводится флаг переноса CF, а в
AX возвращается код ошибки; BX при этом содержит максимальный
размер доступной для распределения памяти (в параграфах). Чтобы
определить наибольший доступный фрагмент, обычно перед вызовом
устанавливают BX=0ffffh. Функция завершится с
ошибкой, возвратив
размер максимального доступного блока памяти в BX.
Замечание
: Когда процесс получает управление через функцию 4bh EXEC,
вся доступная память уже распределена ему.
Функция 49h: Освободить распределенный блок памяти
Вход AH = 49h
ES = сегментный адрес (параграф) освобождаемого блока памяти
Выход AX = код ошибки, если CF установлен
Описание
: Освобождает блок памяти, начинающийся с адреса ES:0000.
Этот блок становится доступным для других запросов системы. Вообще
говоря, вы должны освобождать лишь те блоки памяти, которые вы
получили через функцию 48h Распределить Память. Родитель отвечает за
освобождение памяти порожденных процессов. Тем не менее, ничто не
препятствует вам освобождать память чужих процессов.
Функция 4ah: Сжать
или расширить блок памяти
Вход AH = 4ah
ES = сегмент распределенного блока памяти
BX = желаемый размер блока в 16-байтовых параграфах
Выход AX = код ошибки, если CF установлен
BX = наибольший доступный блок памяти (если расширение
неудачно)
Описание
: Изменяет размер существующего блока памяти. Когда
программа получает управление, функция 4bh EXEC уже распределила
блок памяти, начинающийся с PSP и содержащий всю доступную память.
Чтобы освободить память для запуска порождаемых процессов,
необходимо сначала сжать блок памяти, начинающийся с PSP.
Замечание
: Функция 31h (KEEP) и int 27h (TSR) сжимают блок по адресу
PSP.
                                  59



Описание: Распределяет блок памяти размером в BX параграфов,
возвращая сегментный адрес этого блока в AX (блок начинается с
AX:0000). Если распределение неудачно, взводится флаг переноса CF, а в
AX возвращается код ошибки; BX при этом содержит максимальный
размер доступной для распределения памяти (в параграфах). Чтобы
определить наибольший доступный фрагмент, обычно перед вызовом
устанавливают BX=0ffffh. Функция завершится с ошибкой, возвратив
размер максимального доступного блока памяти в BX.
Замечание: Когда процесс получает управление через функцию 4bh EXEC,
вся доступная память уже распределена ему.
Функция 49h: Освободить распределенный блок памяти
Вход AH = 49h
     ES = сегментный адрес (параграф) освобождаемого блока памяти
Выход AX = код ошибки, если CF установлен
Описание: Освобождает блок памяти, начинающийся с адреса ES:0000.
Этот блок становится доступным для других запросов системы. Вообще
говоря, вы должны освобождать лишь те блоки памяти, которые вы
получили через функцию 48h Распределить Память. Родитель отвечает за
освобождение памяти порожденных процессов. Тем не менее, ничто не
препятствует вам освобождать память чужих процессов.
Функция 4ah: Сжать или расширить блок памяти
Вход AH = 4ah
     ES = сегмент распределенного блока памяти
     BX = желаемый размер блока в 16-байтовых параграфах
Выход      AX = код ошибки, если CF установлен
           BX = наибольший доступный блок памяти (если расширение
           неудачно)
Описание: Изменяет размер существующего блока памяти. Когда
программа получает управление, функция 4bh EXEC уже распределила
блок памяти, начинающийся с PSP и содержащий всю доступную память.
Чтобы освободить память для запуска порождаемых процессов,
необходимо сначала сжать блок памяти, начинающийся с PSP.
Замечание: Функция 31h (KEEP) и int 27h (TSR) сжимают блок по адресу
PSP.