Графика на языке Assembler

Автор работы: Пользователь скрыл имя, 07 Декабря 2010 в 15:19, Не определен

Описание работы


Программа реализована на языке “Assembler”. Для вывода графики на экран используется прямое обращение к видеобуферу. Для достижения плавности прорисовки изображения применяется синхронизация с вертикальной развёрткой монитора.

Файлы: 1 файл

AsmKurs.doc

— 108.00 Кб (Скачать файл)

ENDP LINE 

MAIN PROC

mov ax, datas

 mov ds, ax   ;Инициализация сегментов данных

mov ax, 0A000h  ;A000h - сегмент видеобуфера

mov es, ax

mov ah, 00h   ;Установка видеорежима

 mov al, 13h   ;Mode = 13h (320x200x256)

int 10h 

MainLoop:

mov COLOR, 15   ;Рисование точки

CALL DRAWCUBE  ;Рисуем куб

CALL WAITVRT  ;Ждём развёртку экрана

mov COLOR, 0   ;

CALL DRAWCUBE  ;Стираем куб 

 in al,60h   ;Читаем скан-код клавиатуры

cmp al, 4bh   ;Если клавиша "Left"

 jne DONTROTL

mov ax, DeltaY

sub ANY, ax   ;уменьшаем ANY на DeltaY

jns DONTROTD

add ANY, 360

jmp DONTROTD

DONTROTL:

cmp al, 4dh   ;Если клавиша "Right"

jne DONTROTR

mov ax, DeltaY

add ANY, ax   ;увеличиваем ANY на DeltaY

cmp ANY, 360

jb DONTROTD

sub ANY, 360

jmp DONTROTD

DONTROTR:

cmp al, 48h   ;Если клавиша "Up"

jne DONTROTU

mov ax, DeltaX

add ANX, ax   ;увеличиваем ANX на DeltaX

cmp ANX, 360

jb DONTROTD

sub ANX, 360

jmp DONTROTD

DONTROTU:

cmp al, 50h   ;Если клавиша "Down"

jne DONTROTD   ;

mov ax, DeltaX  ;

sub ANX, ax   ;уменьшаем ANX на DeltaX

jns DONTROTD   ;

add ANX, 360   ;

DONTROTD:

cmp al, 01h   ;если не Escape

jne MainLoop   ;делаем цикл

EXIT:

mov ah, 00h   ;Установка текстового видеорежима

 mov al, 02h   ;Mode - 02h

int 10h

mov ax, 4C00h   ;Terminate

int 21h

ENDP MAIN

CODES ENDS

END MAIN

Информация о работе Графика на языке Assembler