Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
17.04.2013
Размер:
163.33 Кб
Скачать

Пример программы

TITLE GRAPF.EXE

STACKSG SEGMENT PARA STACK 'Stack'

DW 128 DUP(?)

STACKSG ENDS

DATASG SEGMENT PARA 'Data'

x0 dw 0

y0 db 0

len dw 0

hi dw 0

xy dw 0

color db 0

DATASG ENDS

CODESG SEGMENT PARA 'Code'

ASSUME CS:CODESG,DS:DATASG,SS:STACKSG,ES:NOTHING

RECT PROC FAR ;Подпрограмма для рисования прямоугольника

MOV AL,y0 ;Н-координата начала

MOV BL,80 ;Число байт в строке

MUL BL ;AL*BL->AX

ADD AX,x0 ;Прибавим смещение курсора

MOV xy,AX ;Сохраним

MOV CX,hi ;Высота прямоугольника (точек)

MOV SI,0 ;Смещение от угла

L2: PUSH CX ;Сохраним в стеке

MOV CX,len ;Ширина прямоугольника (байт)

MOV BX,xy ;Смещение от 0,0

MOV AL,color ;Цвет

L1: MOV ES:[BX][SI],AL ;вывод в видеобуфер

INC BX ;к следующему байту

LOOP L1 ;цикл в строке

ADD SI,80 ;прибавим длину строки

POP CX ;высоту стека

LOOP L2 ;цикл по строкам

RET ;возврат в программу

RECT ENDP

MAIN PROC

MOV AH,00 ;установим графический режим

MOV AL,10H ;640*350 точек

INT 10H

;установим адресацию к видеобуферу

MOV AX,0A000H

MOV ES,AX

MOV BX,0

;установим режим записи 2

MOV DX,3CEH ;адресный регистр контроллера

MOV AL,5 ;регистр режима

OUT DX,AL ;установка адресуемого регистра

MOV DX,3CFH ;регистр данных

MOV AL,2 ;режим 2

OUT DX,AL ;установка режима записи

;установим маску битов OFFH

MOV DX,3CEH ;адресный регистр контроллера

MOV AL,8 ;регистр маски битов

OUT DX,AX ;установка адресуемого регистра

INC DX ;регистр данных

MOV AL,OFFH ;все пикселы байта размаскировать

OUT DX,AL ;установка маски битов

MOV color,14 ;цвет

MOV hi,100 ;высота (в пикселах)

MOV len,16 ;ширина (в байтах)

MOV x0,30 ;X-координата начала

MOV y0,100 ;Y-координата начала

CALL RECT ;вызов процедуры

;завершаем программу

MOV AH,00H ;ввод с клавиатуры

INT 16H

CMP AL,00 ;проверка на <Enter>

JZ EXIT ;если да, то exit

EXIT:

MOV AH,00H ;установим текстовый режим

MOV AL,03H

INT 10H

MOV AX,4C00H ;код выхода

INT 21H

RET

MAIN ENDP

CODESG ENDS

END MAIN

Соседние файлы в папке Asm_lab
  • #
    17.04.2013346 б26AND7.OBJ
  • #
    17.04.20135.23 Кб24AND8.ASM
  • #
    17.04.20131.09 Кб23AND8.EXE
  • #
    17.04.2013232 б23AND8.MAP
  • #
    17.04.2013618 б24AND8.OBJ
  • #
    17.04.2013163.33 Кб32LAB.DOC
  • #
    17.04.20137.63 Кб25LAB6.TXT
  • #
    17.04.20134.2 Кб25LAB7.TXT
  • #
    17.04.201311.05 Кб26LAB8.TXT
  • #
    17.04.20131.34 Кб23WORK.ASM
  • #
    17.04.2013967 б24WORK.EXE