Міністерство освіти і науки України
Національний університет "Львівська політехніка"
Кафедра "Інформаційні системи та мережі"



Звіт до лабораторної роботи № 7
з предмету:
Сиcтемне програмування та операційні системи
на тему №: 13
Процедурне програмування









ЛЬВІВ-2008


Текст програми:
; Написати програму з використанням процедури, яка знаходить середнє
; арифметичне додатніх елементів одновимірного масиву дійсних чисел.
.MODEL SMALL
.STACK 100h
.DATA
n equ 10
a dw 1, -1, 2, -2, 3, -3, 4, -4, 5, -5
res db ?
.CODE
.STARTUP
call AvgPos
.EXIT 0
AvgPos proc near
xor ax, ax ; лічильник сумми додатніх
xor dl, dl ; лічильник к-ті додатніх
mov cx, n ; кількість повторів
lea bx, a ; початок масиву
l1: cmp [bx], 0 ; якщо не додатне
jle l2 ; продовжити цикл
add ax, [bx] ; інакше збільшуємо
inc dl ; лічильники
l2: add bx, 2 ; перехід на наступний елемент
loop l1 ; продовжити цикл
div dl ; знаходимо середнє арифметичне
mov res, al ; зберігаємо результат
ret
AvgPos endp
END