Графические устройства

         

Установка активной



Пример 5.16. Установка активной страницы, указанной в регистре bх

SelPag: PushReg <ds, ax, bx, dx> сохранение используемых регистров
mov ds , NulSeg очистка регистра ds
mov ax , [44Ch] ах = размер страницы в байтах
mul Ы умножаем его на номер страницы
mov bx , ax сохраняем результат в bx
mov al , OCh al = номер регистра видеоконтроллера
mov dx , [463h] dx = базовый адрес видеоконтроллера
out dx , ax запись старшего байта адреса
mov ah , bl ah = младший байт адреса
inc al номер второго регистра видеокарты
out dx , ax запись младшего байта адреса
PopReg <dx,bx, ax,ds> восстановление регистров из стека
ret возврат из подпрограммы

Для установки активной страницы надо старший и младший байты адреса ее начала записать в регистры ось и ooh (12 и 13). В примере 5.16 адрес вычисляется так же, как и в примере 5.11. Размер страницы выбирается из слова 44ch области данных BIOS, помещается в регистр ах и умножается на номер страницы, указанный в регистре bx. Полученный результат сохраняется в регистре bх, а его старший и младший байты записываются в регистры 0Ch и 0Dh. Способ записи такой же, как в примере 5.15, поэтому мы не будем повторяться.



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