- •Тема: «Графические операции в текстовом режиме дисплея»
- •Int 10h ;Установка курсора.
- •Int 10h ;Вывод символа.
- •Int 10h ;Установка курсора.
- •Int 10h ;Вывод символа
- •Int 10h ;Установка курсора.
- •Int 10h ;Вывод символа.
- •Int 10h ;Установка курсора
- •Int 10h ;Установка курсора.
- •Int 10h ;Вывод символа
- •Int 10h ;Установка курсора.
- •Int 10h ;Вывод символа.
- •Int 10h ;Установка курсора
- •Int 10h ;Вывод символа
Int 10h ;Установка курсора.
mov CX, 1 ;Выводим по одному символу
mov AL, 0Fh ;символ солнышко
mov BL, 10001100b ;Атрибут: красный
mov AH, 09h ;функция вывода символа
Int 10h ;Вывод символа
;-------------Построение первой строки--------------
mov BH, 0
mov DL, 19
mov DH, 12
mov AH, 02h
int 10h
mov CX, 3 ;3 символа
mov AL,2Ah
mov BL, 00001010b ;цвет:зелёный
mov AH, 09h
int 10h
;-------------Построене второй строки---------------
mov BH, 0
mov DL, 18
mov DH, 13
mov AH, 02h
int 10h
mov CX, 5 ;5 символа
mov AL,2Ah ;Символ точки
mov BL, 00001010b ;цвет:зелёный
mov AH, 09h
int 10h
;------------Построение 3 строки--------------------
mov BH, 0
mov DL, 17
mov DH, 14
mov AH, 02h
int 10h
mov CX, 7 ;7 символа
mov AL,2Ah ;Символ точки
mov BL, 00001010b ;цвет:зелёный
mov AH, 09h
int 10h
;-------------Рисуем корешок------------------------
mov BH, 0
mov DL, 20
mov DH, 15
mov AH, 02h
int 10h
mov CX, 1
mov AL, 0Fh ;символ солнышко
mov BL, 00001110b ;цвет жёлтый
mov AH, 09h
int 10h
;------------------вывод поздравления----------------
MOV AX, @DATA
MOV DS, AX
XOR AX, AX
;-----------------1 строка----------------------------
mov BH, 0 ;Используем страницу видеопамяти 0
mov DL, 13 ;Координаты начальной точки Х=55
lea si,A ;Строка А
strok:
inc DL
mov DH, 1 ; Y
mov AH, 02h ;Выбираем функцию установки курсора.
Int 10h ;Установка курсора.
mov CX, 1 ;Выводим по одному символу
mov AL, si[0]
mov BL, 00000011b ;розовый
mov AH, 09h ;Выбираем функцию вывода символа и
Int 10h ;Вывод символа.
inc si ;следующий символ
cmp dl,ln1
jb strok ;если меньше то переход к метке
;---------------------------2 строка--------------------
mov BH, 0 ;Используем страницу видеопамяти 0.
mov DL, 16
lea si,B ;Строка В
strok1:
inc DL
mov DH, 2 ; Y
mov AH, 02h ;Выбираем функцию установки курсора
Int 10h ;Установка курсора
mov CX, 1 ;Выводим по одному символу
mov AL, si[0]
mov BL, 00001100b ;тёмно - синий
mov AH, 09h
int 10h
inc si
cmp dl,ln2
jb strok1
;-----------------------------3 строка---------------------
mov BH, 0 ;Используем страницу видеопамяти 0
mov DL, 14 ;Координаты начальной точки Х=55
lea si,C
strok2:
inc dl
mov DH, 3 ; Y
mov AH, 02h
int 10h
mov CX, 1 ;Выводим по одному символу
mov AL, si[0]
mov BL, 10001101b ;светло синий
mov AH, 09h
int 10h
inc si
cmp dl,ln3
jb strok2
;----------------Завершение программы--------------
mov AX, 4C00h
int 21h
END Start
4.2 Проанализировать пример программы GRAFIC, приведенной ниже и реализующей вывод графика функции, последовательность значений которой определена в сегменте данных в виде массива MAS. Добавить в исходный текст недостающие комментарии.
TITLE GRAFIC
;Программа построения графика функции в текстовом режиме экрана
;Входные параметры:
;массив значений элементов графика MAS
.MODEL SMALL
.DATA
Mas DB 0,1,5,8,9,8,5,1,0,-1,-5,-8,-9,-5,-1
Func DW 450, -350, 0, 250, 375, 400, 420, 360, 250, 200, 150
DW 325, 300, 285, 200, 0, –200, -275, -250, -150, -100
DW -50, 0, 50, 100, 150, 200
.STACK 256 (?)
.CODE
Start:
mov AX, @DATA
mov DS, AX
;------ Задание режима экрана с очисткой ----------
mov AH, 0
mov AL, 3 ;Режим 80х25, 16 цветов.
int 10h
;----- Построение вертикальной оси координат ------
mov BH, 0 ;Используем страницу видеопамяти 0
mov DL, 5 ;Координаты начальной точки Х=5
mov DH, 1 ; Y =1
met1:
mov AH, 02h ;Выбираем функцию установки курсора
int 10h ;Установка курсора
mov CX, 1 ;Выводим по одному символу
mov AL, 7Ch ;символ вертикальной черточки.
mov BL, 00001111b ;Атрибут: ярко белый по черному фону.
mov AH, 09h ;Выбираем функцию вывода символа и атрибута в позицию курсора
int 10h ;Вывод символа
inc DH ;Переход к координате Y+1.
cmp DH, 24 ;Сравнение с нижней позицией
jb met1 ;Если ниже, повторить цикл вывода символа
;----Построение горизонтальной оси координат ---
mov BH, 0
mov DL, 5 ;Координаты начальной позиции Х=5
mov DH, 12 ;Y=12
mov AH, 02h ;Выбираем функцию установки курсора
int 10h ;Установка курсора
mov CX, 50 ;Длина цепочки символов
mov AL,5Fh ;Символ горизонтальной черточки
mov BL, 00001111b ;белый по черному фону
mov AH, 09h ;Выбираем функцию вывода символа и атрибута в позицию курсора
int 10h ;Вывод символа
;--------------Вывод точек графика---------------------
lea SI, Mas ;Загрузка адреса массива значений
mov DI, 15 ;Установка счетчика циклов
mov CX, 1 ;Вывод по одному символу
mov BH, 0 ;Используем страницу видеопамяти 0
mov DL, 5 ;Координаты первой точки X=5
met2:
mov DH, 12 ;Y=12
sub DH, [SI] ;Вычисление Y(i) в системе координат графика
mov AH, 02h ;Выбираем функцию установки курсора
int 10h ;Установка курсора в вычисленную позицию
mov AL, 2Ah ;Символ звёздочки
mov BL, 00001100b ;цвет красный
mov AH, 09h ;Выбираем функцию вывода символа и атрибута в позицию курсора