Аппаратное обеспечение IBM PC

       

Переслать/обменять область памяти


На входе: AH = 57h;

AL = код подфункции:

0 - переслать область памяти; 1 - обменять область памяти;

DS:SI = адрес структуры MoveInfo длиной 18 байтов.

На выходе: AH = байт состояния EMM.

Функция предназначена для выполнения перемещения или обмена содержимого областей стандартной или дополнительной памяти. Возможно перекрытие исходной и результирующей областей памяти. Максимальный размер блоков, над которыми эта функция может выполнять операции - 1 мегабайт.

Структура MoveInfo содержит всю необходимую информацию о расположении блоков памяти:

Смещение Размер Описание

(+0) 4 Размер блока в байтах

(+4) 1 Тип исходной памяти: 0 - стандартная, 1 - EMS

(+5) 2 Индекс исходной памяти: 0 для стандартной памяти, индекс пула для EMS

(+7) 2 Смещение для исходной памяти (внутри сегмента или страницы)

(+9) 2 Адрес исходного сегмента или номер для исходной страницы

(+11) 1 Тип результирующей памяти: 0 - стандартная, 1 - EMS

(+12) 2 Индекс результирующей памяти: 0 для стандартной памяти, индекс пула для EMS

(+14) 2 Смещение для результирующей памяти (внутри сегмента или страницы)

(+16) 2 Адрес результирующего сегмента или номер для исходной страницы

Получить массив адресов отображения

На входе: AH = 58h;

AL = код подфункции:

0 - получить массив отображения; 1 - получить размер массива отображения;

ES:DI = адрес буфера для массива отображения.

На выходе: AH = байт состояния EMM;

CX = количество элементов в массиве отображения (для подфункции 1)

Массив отображения, получаемый при помощи этой функции, состоит из 4-байтовых элементов. Первое слово элемента содержит адрес сегмента, второе - номер физической страницы, соответствующей этому адресу.



Содержание раздела