Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lb_8.DOC
Скачиваний:
2
Добавлен:
17.11.2019
Размер:
71.68 Кб
Скачать

Часть 2. Вывод графика функции.

4. Подготовка к работе.

4.1. Изучить методические указания к лабораторной работе.

4.2. Подготовить ответы на контрольные вопросы.

4.3. Проанализировать пример программы GRAFIC , приведенной ниже и реализующей вывод графика функции, последовательность значений которой определена в сегменте данных в виде массива MAS.

4.4. Разработать новую программу для вывода графика функции, заданной в сегменте данных массивом значений FUNC. Заметим, что значения функции следует пронормировать путем деления на некоторый коэффициент с тем, чтобы максимальное значение не превышало допустимого отклонения координаты Y на экране дисплея в обе стороны от начала координат.

4.5. Кроме того, в новой программе следует:

  • перенести начало осей координат в центр экрана;

  • обеспечить, чтобы значению Х=0 соответствовало значение седьмого (центрального) элемента массива;

  • сформировать стрелочки на концах осей координат и вывести их наименование символами X и Y ;

  • задать другой цвет осей и графика.

Коды символов: 1АН – горизонтальная стрелка вправо;

18Н – вертикальная стрелка вверх.

5. Порядок выполнения работы

5.1. Используя текстовый редактор, создать текстовый файл, получить исполняемый файл сначала для программы GRAFIC , а затем для программы, разработанной в соответствии с домашним заданием.

5.2. Проверить работоспособность обеих программ.

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

Title GRAFIC

datasg segment para

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,

dw 325, 300, 285, 200, 0 –200, -275

datasg ends

stacksg segment para stack 'stack'

db 128 dup (?)

stacksg ends

codesg segment para 'code'

ASSUME SS: stacksg, CS: codesg, DS: datasg

start: MOV AX, DATASG

MOV DS, AX

; ЗАДАНИЕ РЕЖИМА ЭКРАНА С ОЧИСТКОЙ

MOV AH, 00H

MOV AL, 03H ; цветной, 25 Х 80

INT 10H

; ИЗОБРАЖЕНИЕ ВЕРТИКАЛЬНОЙ ОСИ

MOV BH, 00H

MOV DL, 5 ;координаты верхней точки Х=5,

MOV DH, 1 ; Y =1.

met1: MOV AH, 02H

INT 10H ; установка курсора

MOV CX, 1

MOV AL, 7CH; символ вертикальной черточки

MOV BL, 07H; яркобелый по черному

MOV AH, 09H

INT 10H ; вывод символа

INC DH ;переход к координате Y+1

CMP DH, 24 ;сравнение с нижней позицией

JB met1 ; цикл вывода символа

; ИЗОБРАЖЕНИЕ ГОРИЗОНТАЛЬНОЙ ОСИ

MOV BH, 00H

MOV DL, 5 ; координаты левой позиции Х=5,

MOV DH, 12 ; Y=12.

MOV AH, 02H

INT 10H ; установка курсора

MOV CX, 50 ; длина цепочки символов

MOV AL,5FH ; символ горизонтальной черточки

MOV BL, 07H; яркобелый по черному

MOV AH, 09H

INT 10H ; вывод символа

; ВЫВОД ТОЧЕК ГРАФИКА

LEA SI, MAS ; адрес массива значений

MOV DI, 15 ; счетчик циклов

MOV CX, 1 ; вывод по одному символу

MOV BH, 00H

MOV DL, 5 ; координаты первой точки X=5,

cikl: MOV DH, 12 ; Y=12.

SUB DH, [SI] ; вычисление Y(i)

MOV AH, 02H

INT 10H ; установка курсора

MOV AL, 2AH; символ (*)

MOV BL, 0CH; яркокрасный по черному

MOV AH, 09H

INT 10H ; вывод символа

ADD DL,3 ; следующая координата по Х

INC SI ; адрес следующего значения

DEC DI ;изменение счетчика циклов

JNZ cikl ; цикл вывода

;ЗАВЕРШЕНИЕ ПРОГРАММЫ

MOV AX, 4C00H

INT 21H

CODESG ENDS

END start

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]