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

UptoLike

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

101
mov ah,0 ; Функция установки видеорежима
mov al,4 ; Граф. реж. CGA 320 * 200 точек
int 10h
mov di,addr
st2: lea si,colob
call sprit0
call sprite
; Сохранение исходных координат
mov ax,addr
mov addr0,ax
; Чтение клавиатуры
call kbin
cmp ah,1 ; Скан-код = Esc ?
jnz st3 ; Нет
int 20h ; Выход при нажатии Esc
st3: cmp ah,48h ; Вверх ?
jnz st4
sub addr,80*2 ; Вверх на 4 строки
jmp st2
st4: cmp ah,50h ; Вниз ?
jnz st5
add addr,80*2 ; Вниз на 4 строки
jmp st2
st5: cmp ah,4dh ; Вправо ?
jnz st6
inc addr
jmp st2
st6: cmp ah,4bh ; Влево ?
jnz st2
dec addr
jmp st2
; Ввод с клавиатуры
kbin proc near
mov ah,0 ; Функция 0
int 16h ; клавиатурного прерывания
ret
kbin endp
; Построение спрайта 16 * 16
; addr – адрес левого верхнего угла
; SI – начало спрайта
sprite proc near
; Построение четных строк
push si
mov di,addr
mov ax,0b800h
mov es,ax
mov bp,8 ; Счетчик числа строк/2
sp1: mov cx,4 ; Счетчик числа слов
rep movsb
add di,76
                                     101



        mov ah,0         ; Функция установки видеорежима
        mov al,4         ; Граф. реж. CGA 320 * 200 точек
        int  10h
        mov di,addr
st2: lea     si,colob
        call sprit0
        call sprite
; Сохранение исходных координат
        mov ax,addr
        mov addr0,ax
; Чтение клавиатуры
        call kbin
        cmp ah,1         ; Скан-код = Esc ?
        jnz  st3         ; Нет
        int  20h         ; Выход при нажатии Esc
st3: cmp ah,48h          ; Вверх ?
        jnz  st4
        sub addr,80*2    ; Вверх на 4 строки
        jmp st2
st4: cmp ah,50h          ; Вниз ?
        jnz  st5
        add addr,80*2    ; Вниз на 4 строки
        jmp st2
st5: cmp ah,4dh          ; Вправо ?
        jnz  st6
        inc  addr
        jmp st2
st6: cmp ah,4bh          ; Влево ?
        jnz  st2
        dec addr
        jmp st2
; Ввод с клавиатуры
kbin proc near
        mov ah,0         ; Функция 0
        int  16h         ; клавиатурного прерывания
        ret
kbin endp
; Построение спрайта 16 * 16
; addr – адрес левого верхнего угла
; SI – начало спрайта
sprite proc near
; Построение четных строк
        push si
        mov di,addr
        mov ax,0b800h
        mov es,ax
        mov bp,8         ; Счетчик числа строк/2
sp1: mov cx,4            ; Счетчик числа слов
        rep  movsb
        add di,76