Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Code segment
assume cs:code, ds:data
; Подпрограмма обработки прерывания 1Сh
NEW_1C proc far
Push ax; сохранить все регистры
Push bx
Push cx
Push dx
Push ds
Push es
Mov ax, DATA; установить ds на сегмент данных
Mov ds, ax; основной программы
Mov ax, 40h; установить es на
Mov es, ax; сегмент данных bios
mov ax, es:[1ch]
mov bx, es:[1ah]
Cmp bx, ax
Jne m5
Jmp back
m5: mov al, es:[bx]
mov es:[1ch], bx
Cmp al, 30h
Jnz m1
Mov EXIT, 1
Jmp back
m1: cmp al, 35h
Jne m6
Mov dl, ATRIBUT1
Mov dh, ATRIBUT2
Mov ATRIBUT1, dh
Mov ATRIBUT2, dl
Jmp back
m6: cmp al, 38h; стрелка вверх
Jz m2
Cmp al, 32h; стрелка вниз
Jz m3
Cmp al, 34h; стрелка влево
Jz m4
Cmp al, 36h; стрелка вправо
Jnz back; неиспользуемая клавиша
Mov DIRECT, 3
Jmp back
m2: mov DIRECT, 1
Jmp back
m3: mov DIRECT, 4
Jmp back
m4: mov DIRECT, 2
back: pop es
Pop ds
Pop dx
Pop cx
Pop bx
Pop ax
Iret
NEW_1C endp
; Подпрограмма очистки экрана
CLS proc near
Push cx
Push ax
Push si
Xor si, si
Mov ah, 7
mov dl, ' '
Mov cx, 2000
CL1: mov es:[si], ax
Inc si
Inc si
Loop CL1
Pop si
Pop ax
Pop cx
Ret
CLS endp
; Подпрограмма задержки
DELAY proc near
Push cx
Mov cx, 100
d12: push cx
Xor cx,cx
d11: nop
Loop d11
Pop cx
Loop d12
Pop cx
Ret
DELAY endp
; Подпрограмма вывода символа с заданным атрибутом
OUT_SYMBOL proc near
Push ax
Push bx
Mov al, SYM
Mov ah, ATRIBUT1
Mov bx, POS
Call DELAY
mov es:[bx], ax
Pop bx
Pop ax
Ret
OUT_SYMBOL endp
; Основная программа
START: mov ax, DATA
Дата публикования: 2014-11-28; Прочитано: 349 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!