Применение подпрограмм в вычислительных процессах

Автор работы: Пользователь скрыл имя, 05 Апреля 2010 в 13:51, Не определен

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

Задание: Вычислить функцию заданную в виде:
Y(x)=a, если 1<x<=5
Y(x)=b, если 5<x<=10
Где a и b – элементы массивов A(I), B(I), стоящие в третьей позиции после сортировки в порядке возрастания. Сортировку массива в порядке возрастания оформить в виде подпрограммы.
I= 1, 2, 3, .., 10
Алгоритм программы (блок-схема)

Файлы: 1 файл

ЛР 2 по ОРГ ЭВМ и СИСТЕМ..docx

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

Лабораторная  работа 2

Применение  подпрограмм в вычислительных процессах

Задание: Вычислить  функцию заданную в виде:

Y(x)=a, если 1<x<=5

Y(x)=b, если 5<x<=10

Где a и b – элементы массивов  A(I), B(I), стоящие в третьей позиции после сортировки в порядке возрастания. Сортировку массива в порядке возрастания оформить в виде подпрограммы.

 I= 1, 2, 3, .., 10

Алгоритм программы (блок-схема)

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Листинг программы: 

.model small

.stack 100h

.data

Welc db ‘Enter X:$’

Mess db ‘x>10 ili <0 $’

Res db 1,2,3,4,5,6,7,8,9,0

P db (?)

X db 2

Y_x db (?)

Massiv db 1,6,4,4,5,6,7,8,9,0

Prob db ‘$’

.code

Newline proc near

Push dx

Push ax

Mov ah, 2

Mov dl, 13

Int 21h

Pop ax

Pop dx

Ret

Newline endp

; процедура сортировки  массива

Sort_mas proc near

Mov cx, 10

Lp_sort:

Mov si, 0

Lp_srt_ins:

Mov dh, [bx+si+1]

Cmp [bx+si], dh

Ja above

Lp_srt_ins_con:

Cmp si, 9

Inc si

Jb lp_srt_ins

Loop lp_sort

Jmp end_proc

Above:

Mov dh, [bx+si]

Mov p, dh

Mov dh, [bx+si+1]

Mov [bx+si], dh

Mov dh, p

Mov [bx+si+1], dh

Jmp lp_srt_ins_con

End_proc:

Ret

Sort_mas endp

Outbyte proc near

Push ax

Push cx

Push dx

Aam

Mov cl, al

Mov al, ah

Aam

Mov ch, al

Mov dl, ah

Mov ah, 02h

Add dl, 30h

Add cx, 3030h

Cmp dl, 30h

Jnz  short@ob1

Cmp ch, 30h

Jnz  short@ob2

Jmp  short@ob3

@ob1: int 21h

@ob2: mov dl, ch

Int 21h

@ob3: mov dl, cl

Int 21h

Pop dx

Pop cx

Pop ax

Ret

Outbyte endp

Print_mas proc near

Print:

Mov cx, 10

Mov si, 0

Cycle_print:

Mov al, [bx+si]

Call outbyte

Mov ah, 9

Mov dx, offset prob

Int 21h

Inc si

Loop cycle_print

Call newline

Ret

Print_mas endp

Main:

Mov ax, @data

Mov ds, ax

Mov ah, 9

Mov dx, offset welc

Int 21h

Mov ah, 01h

Int 21h

Sub al, 30h

Mov x, al

Call newline

Mov bx, offset massiv

Call sort_mas

Call print_mas

Mov bx, offset res

Call sort_mas

Call print_mas

Mov dh, x

Cmp dh, 5

Jbe a1

Cmp dh, 10

Jbe b1

Mov ah, 9

Movdx, offset mess

Int 21h

Jmp exit

A1:

Mov al, massiv[2]

Mov y_x, al

Call outbyte

Jmp exit

b1:

Mov al, res[2]

Mov y_x, al

Call outbyte

Jmp exit

Exit:

Mov ax,4c00h

Int 21h

End main 

Выполнила студентка гр. ИУТ-91 Маякова Алина  Сергеевна

Информация о работе Применение подпрограмм в вычислительных процессах