Разработка ассемблерной программы вычисления специальной функции
Рефераты >> Программирование и компьютеры >> Разработка ассемблерной программы вычисления специальной функции

Приложение Б. Схема программы

Блок-схема вычисления значения функции

Приложение В. Текст программы.

CODE SEGMENT ;начало сегмента кода

ORG 100h

start proc

ASSUME cs:code ;директива установки сегмента кода

begin:

call clear ;вызов процедуры очистки экрана

mov dx,0000h ;записываем в dх координаты курсора

call cursor ;вызов процедуры установки курсора

lea dx,t0 ;указываем ссылку на сообщение

call oput ;вызываем процедуру вывода

mov dx,0100h ;записываем в dх координаты курсора

call cursor ;вызов процедуры установки курсора

lea dx,t1 ;указываем ссылку на сообщение

call oput ;вызываем процедуру вывода

mov dx,0200h ;записываем в dх координаты курсора

call cursor ;вызов процедуры установки курсора

lea dx,t2 ;указываем ссылку на сообщение

call oput ;вызываем процедуру вывода

mov dx,0320h ;записываем в dх координаты курсора

call cursor ;вызов процедуры установки курсора

lea dx,t3 ;указываем ссылку на сообщение

call oput ;вызываем процедуру вывода

mov dx,0420h ;записываем в dх координаты курсора

call cursor ;вызов процедуры установки курсора

lea dx,t4 ;указываем ссылку на сообщение

call oput ;вызываем процедуру вывода

mov dx,0520h ;записываем в dх координаты курсора

call cursor ;вызов процедуры установки курсора

lea dx,t5 ;указываем ссылку на сообщение

call oput ;вызываем процедуру вывода

mov dx,0600h ;записываем в dх координаты курсора

call cursor ;вызов процедуры установки курсора

lea dx,t6 ;указываем ссылку на сообщение

call oput ;вызываем процедуру вывода

;Ввод значения А

mov dx,0600h ;координаты курсора

call cursor ;вызов процедуры

lea dx,t7 ;загружаем подсказку

call oput ;выводим на экран

mov ah,0ah ;считываем ввод

lea dx,A ;записываем в регистр

int 21h ;прерывание DOS

mov bl,A+1 ;в bl записываем значение A со смещением на 1

lea si,A+1 ;в si записываем значение A со смещением на 1

call cod ;вызываем процедуру перевода

sub ax,ax ;чистим регистр

mov ax,cods ;пишем в ax введённое значение

mov Ak,ax ;записываем переведённое значение

;Ввод значения B

mov dx,0700h ;координаты курсора

call cursor ;вызов процедуры

lea dx,t8 ;загружаем подсказку

call oput ;выводим на экран

mov ah,0ah ;считываем ввод

lea dx,B ;записываем в регистр

int 21h ;прерывание DOS

mov bl,B+1 ;в bl записываем значение B со смещением на 1

lea si,B+1 ;в si записываем значение B со смещением на 1

call cod ;вызываем процедуру перевода

sub ax,ax ;чистим регистр

mov ax,cods ;пишем в ax введённое значение

mov Bk,ax ;записываем переведённое значение

;Ввод значения C

mov dx,0800h ;координаты курсора

call cursor ;вызов процедуры

lea dx,t9 ;загружаем подсказку

call oput ;выводим на экран

mov ah,0ah ;считываем ввод

lea dx,C ;записываем в регистр

int 21h ;прерывание DOS

mov bl,C+1 ;в bl записываем значение C со смещением на 1

lea si,C+1 ;в si записываем значение C со смещением на 1

call cod ;вызываем процедуру перевода

sub ax,ax ;обнуляем регистр

mov ax,cods ;пишем в ax введённое значение

mov Ck,ax ;записываем переведённое значение

;Ввод значения Y

mov dx,0900h ;координаты курсора

call cursor ;вызов процедуры

lea dx,t10 ;загружаем подсказку

call oput ;выводим на экран

mov ah,0ah ;считываем ввод

lea dx,y ;записываем в регистр

int 21h ;прерывание DOS

mov bl,y+1 ;в bl записываем значение Y со смещением на 1

lea si,y+1 ;в si записываем значение Y со смещением на 1

call cod ;вызываем процедуру перевода

sub ax,ax ;чистим регистр

mov ax,cods ;пишем в ax введённое значение

mov Yk,ax ;записываем переведённое значение

;Ввод значения X1

mov dx,0A00h ;координаты курсора

call cursor ;вызов процедуры

lea dx,t11 ;загружаем подсказку

call oput ;выводим на экран

mov ah,0ah ;считываем ввод

lea dx,x1 ;записываем в регистр

int 21h ;прерывание DOS

mov bl,x1+1 ;в bl записываем значение X1 со смещением на 1

lea si,x1+1 ;в si записываем значение X1 со смещением на 1

call cod ;вызываем процедуру перевода

sub ax,ax ;чистим регистр

mov ax,cods ;пишем в ax введённое значение

mov X1k,ax ;записываем переведённое значение

;Ввод значения Xn

mov dx,0B00h ;координаты курсора

call cursor ;вызов процедуры

lea dx,t12 ;загружаем подсказку

call oput ;выводим на экран

mov ah,0ah ;считываем ввод

lea dx,xn ;записываем в регистр

int 21h ;прерывание DOS

mov bl,xn+1 ;в bl записываем значение Xn со смещением на 1

lea si,xn+1 ;в si записываем значение Xn со смещением на 1

call cod ;вызываем процедуру перевода

sub ax,ax ;чистим регистр

mov ax,cods ;пишем в ax введённое значение

mov Xnk,ax ;записываем переведённое значение

;Ввод значения h

mov dx,0C00h ;координаты курсора

call cursor ;вызов процедуры

lea dx,t13 ;загружаем подсказку

call oput ;выводим на экран

mov ah,0ah ;считываем ввод

lea dx,h ;записываем в регистр

int 21h ;прерывание DOS

mov bl,h+1 ;в bl записываем значение h со смещением на 1

lea si,h+1 ;в si записываем значение h со смещением на 1

call cod ;вызываем процедуру перевода

sub ax,ax ;чистим регистр

mov ax,cods ;пишем в ax введённое значение

mov hk,ax ;записываем переведённое значение

mov cur,0D00h ;сохранение в переменной координаты курсора

;Вычисление функции

mov ax,X1k ;пишем в ax значение X1k

mov Xni,ax ;устанавливаем в xni значение X1

mov ax,Xni ;пишем в ax значение Xcod

cmp ax,Yk ;пишем в ax значение Yk

je er ;переход по метке er если X=Y

jg Bbol ;переход по метке Bbol если X>Y

er: ;метка

call error ;вызов процедуры обработки ошибки

Bbol: ;metka


Страница: