.model small
.stack
.data
databuf dw 34h,234h,9845h,0AD3h,99h,34h,09h,32h,1234h
count = ($-databuf)/2
average dw ?
.code
.startup
mov ax,count
push ax
mov ax,offset databuf
push ax
call subpro
add sp,4
mov average,ax
.exit 0
subpro proc
push sp
mov bp,sp
push bx
push cx
push dx
push si
push di
mov cx,[bp+6]
mov bx,[bp+4]
xor si,si
mov di,si
mean:
mov ax,[bx]
cwd
add si,ax
add di,dx
inc bx
inc bx
loop mean
mov cx,[bp+6]
idiv cx
pop di
pop si
pop dx
pop cx
pop bx
ret
subpro endp
end