Автор работы: Пользователь скрыл имя, 09 Октября 2014 в 19:02, курсовая работа
Задание: разработать программу, позволяющую рисовать на экране монитора в графическом режиме точки и линии с помощью клавиатуры.
Задание 3
Блок-схема программы 4
Описание используемых функций программы 6
Листинг программы 7
Заключение. 11
Список использованной литературы 12
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
К КУРСОВОЙ РАБОТЕ
(СПО)
Тема: Рисование в графическом режиме.
Казань 2012г.
Оглавление
Задание
Разработать программу, позволяющую рисовать на экране монитора в графическом режиме точки и линии с помощью клавиатуры.
Блок-схема программы
Построение линии:
0h функция 10h прерывания.
Вход: в AL код определяющий режим монитора и разрешение
Описание: Задает режимы монитора (текстовый и графический) разного расширения.
0h функция 16h прерывания.
Вход: AH = 0h
выход: AL = ASCII символ (если AL=0, AH содержит расширенный код ASCII )
AH = сканкод или расширенный код ASCII
Описание: Ожидает нажатие клавиши клавиатуры и возвращает её код символ в AL.
07h функция 21h прерывания.
Вход: AH = 07h
Выход: AL = символ, полученный через стандартный ввод
Описание: Считывает (ожидает) символ со стандартного входного устройства и возвращает этот символ в AL.
0Сh функция 10h прерывания.
На входе: AH = 0Ch - запись пиксела; AL = номер цвета; BH = номер страницы (для CGA не используется); CX = координата X; DX = координата Y.
Описание: Ставит точку в заданную страницу, заданное место, заданным цветом.
4Сh функция 21h прерывания.
Вход: AH = 4Сh; AL = код выхода
Описание: Возвращает управление от порожденного
процесса его родителю, устанавливая код
выхода.
Листинг программы
.MODEL small
.STACK 100h
.DATA
x dw 200
y dw 100
color db 1,2,3,4,5,6,7,8,9
perem dw 0
perem1 dw 0
V dw 0
V1 dw 0
.CODE
mov ax,@Data
mov ds,ax
;zadanie rezshima
mov ah,00
mov al,12h
int 10h
nachalo:
mov ah,0ch ;proverka na nazchatie klavish
int 16h
;poluchaem vvedennyy symbol
mov ah,7
int 21h
cmp al,'s'
je vniz ;esli raven
cmp al,'w'
je vverh
cmp al,'d'
je vpravo
cmp al,'a'
je vlevo
cmp al,'t'
je tochka
cmp al,'n'
je nach
cmp al,'k'
je kon
jmp konec
vniz:
inc x
jmp nachalo
vverh:
dec x
jmp nachalo
vpravo:
inc y
jmp nachalo
vlevo:
dec y
jmp nachalo
tochka:
mov ah,0ch
mov al,color
mov cx,y
mov dx,x
mov bh,0
int 10h
nach:
mov bx,y
mov V,bx
mov bx,x
mov V1,bx
mov ah,0ch
mov al,color
mov cx,y
mov dx,x
mov bh,0
int 10h
jmp nachalo
kon:
mov bx,V
cmp bx,y
jg pr ;pryamoe vychitanie
sub bx,y
inv bx
mov perem,0
jmp m ; obhod pryamogo vychitaniya
pr: sub bx,y
mov perem,1
m: mov cx,V1
cmp cx,x
jg pr1 ;pryamoe vychitanie
sub cx,x
deg cx
mov perem1,0
jmp m1 ; obhod pryamogo vychitaniya
pr1: sub cx,x
mov perem1,1
m1: cmp bx,cx
jg gorizont
;liniya vertical'naya
cmp perem1,0
jz yvel ;yvelichenie nachal'noy tochki
mov ah,0ch
mov al, color
mov bh,0
t1:
mov cx,V
mov dx,V1
int 10h
dec V1
cmp dx,x
jne t1
jmp nachalo
yvel:
mov ah,0ch
mov al, color
mov bh,0
t2:
mov cx,V
mov dx,V1
int 10h
deg V1
cmp dx,x
jne t2
jmp nachalo
;liniya gorizontal'naya
gorizont:
cmp perem,0
jz yvel2 ;yvelichenie nachal'noy tochki
mov ah,0ch
mov al, color
mov bh,0
t3:
mov cx,V
mov dx,V1
int 10h
dec V
cmp cx,y
jne t3
jmp nachalo
yvel2:
mov ah,0ch
mov al, color
mov bh,0
t4:
mov cx,V
mov dx,V1
int 10h
inc V
cmp cx,y
jne t4
jmp nachalo
konec:
mov ah,0ch
int 16h
cmp al,13 ;proverka enter
je vce
jmp nachalo
vce:
mov ax,3 ;vozvrat v text pezchim
int 10h
mov ah,4ch
int 21h
end
Заключение.
Программа, позволяет рисовать точки и линии в графическом режиме.
Список использованной литературы