Аппаратное обеспечение персонального компьютера

       

Копирование блоков EMB


Регистры на входе:

AH = 0Bh

DS:SI = указатель на управляющую структуру, определяющую откуда, куда и как будет выполняться копирование

Регистры на выходе:

AX = 0001h - если функция выполнена успешно, 0000h - если произошла ошибка

Ошибки:

BL = 80h, 81h, 82h, A3h, A4h, A5h, A6h, A7h, A8h, A9h

Формат управляющей структуры представлен ниже:

ExtMemMoveStruct  struc

  Length         dd ?    ; количество пересылаемых байт

  SourceHandle   dw ?    ; индекс исходного блока

  SourceOffset   dd ?    ; смещение в исходном блоке

  DestHandle     dw ?    ; индекс блока-назначения

  DestOffset     dd ?    ; смещение в блоке-назначении

ExtMemMoveStruct  ends

Эта функция выполняет основную операцию с блоками EMB - копирование данных. Данные могут пересылаться между обычной памятью и блоками EMB, между различными блоками EMB и даже внутри обычной памяти.

Поле Length управляющей структуры указывает количество пересылаемых байт данных. Это количество должно быть четным.

Поля SourceHandle и DestHandle указывают, соответственно, идентификаторы исходного блока EMB и блока, в который выполняется копирование. Если в качестве идентификатора задано значение 0000h, это означает, что в качестве источника или приемника данных используется обычная память.

Поля SourceOffset и DestOffset указывают 32-разрядное смещение в блоке EMB или адрес в обычной памяти. В последнем случае этот адрес имеет стандартный формат [сегмент:смещение].

Функция копирования сама управляет линией A20, восстанавливая ее состояние после выполнения копирования. Поэтому программе не требуется управлять линией A20.

Во время выполнения копирования разрешены прерывания.



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







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий