Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Data ends



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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...