Программирование видеоадаптеров, регисторв и видеоподсистемы, страница 10

                loop    ps1     ;цикл через множитель

                pop     CX

                loop    lp2

                mov     AX,pse

                sub     AX,1000h

                mov     pse,AX

                cmp     AX,0

                ja      dsp

        ;переустановка страницы 0 перед возвратом в DOS

                mov     AL,0

                mov     AH,5

                int     10h

                ret

main    endp

code    ends

end  start

Пример 2. Прямая запись в видеопамять

assume cs:code,ds:data

code segment 'code' public byte

main    proc

   mov ax,data

   mov ds,ax

   push 0b800h

   pop es

   mov si,offset msg

   mov di,80*2*13+37*2

   mov cx,msglen  

   cld

   rep movsb

   mov ah,08h

   int 21h

   mov ah,4ch

   int 21h

main    endp

code ends

data segment public byte

msg     db      10h,0Eh,'T',84h,'e',84h,'s',84h,'t',84h,11h,0Eh

msglen=$-msg

data ends      

end main


ПРАКТИЧЕСКАЯ ЧАСТЬ

Задание к лабораторной работе

Цель работы: получить представление об основных приемах программирования видеоадаптера. Изучить работу программ, работающих с видеоподсистемой.

1.  Запустить одну из предлагаемых программ, изучить ее работу, в случае необходимости – исследовать ее работу при помощи отладчика.

2.  Объяснить выполняемые действия и прокомментировать их результаты.