Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб№1(assembl).doc
Скачиваний:
3
Добавлен:
13.07.2019
Размер:
167.94 Кб
Скачать
  1. Запуск программы и ввод исходной строки

  1. Вывод после последовательных нажатий LeftShift, Control, LeftAlt.

  1. Вывод после последовательных нажатий RightShift, Control, RightAlt.

  1. Выход из программы – комбинация LeftShift+Control+LeftAlt.

Задание №6

Постановка задачи: Разработать программу, которая выводит в центре экрана световую точку и изменяет ее положение с помощью клавиш-стелок.

Исходные данные: Световая точка в центре.

Результат: Возможность менять ее положение с помощью стрелок.

Для работы с видео режимом исмользуется прерывание BIOS int 10h.

Листинг программы:

masm

model small

.data

tr db 0

c1 db 0

k1 dw 160

k2 dw 100

eos db 10,13,'$'

.stack

db 256 dup ('?')

.code

main proc

mov ax,@data

mov ds,ax

mov es,ax

mov ah,0fh

int 10h

mov tr,al

mov ah,00h

mov al,4

int 10h

mov ah,0ch

mov bh,0

mov dx,100

mov cx,160

mov al,1

int 10h

m1:

xor ax,ax

mov ah,00h

int 16h

mov c1,al

cmp al,27

je m2

call getRight

call getLeft

call getDown

call getUp

mov ah,0ch

mov bh,0

mov dx,k2

mov cx,k1

mov al,1

int 10h

jmp m1

m2:

mov ah,00h

mov al,tr

int 10h

mov ax,4c00h

int 21h

main endp

getRight proc

cmp ah,77

jne m3

mov ah,0ch

mov bh,0

mov dx,k2

mov cx,k1

mov al,4

int 10h

inc k1

m3:

ret

getRight endp

getLeft proc

cmp ah,75

jne m4

mov ah,0ch

mov bh,0

mov dx,k2

mov cx,k1

mov al,4

int 10h

dec k1

m4:

ret

getLeft endp

getDown proc

cmp ah,80

jne m5

mov ah,0ch

mov bh,0

mov dx,k2

mov cx,k1

mov al,4

int 10h

inc k2

m5:

ret

getDown endp

getUp proc

cmp ah,72

jne m6

mov ah,0ch

mov bh,0

mov dx,k2

mov cx,k1

mov al,4

int 10h

dec k2

m6:

ret

getUp endp

end main