汇编语言求平均值(十进制显示)

汇编语言求平均值(十进制显示),第1张

汇编语言求平均值(十进制显示)

编程求出数组array中存放的十进制数的平均值,并将其输出到屏幕,输出十进制数功能由子程序dispuib实现
array的定义如下:
array db 8,68,15,22,37,6,58,48,96,2
输出格式为: The average of the array is 36

DATAS SEGMENT
;此处输入数据段代码

array	db 8,68,15,22,37,6,58,48,96,2 
msg     db 'The average of the array is:', '$'
average db ?
string  =0

DATAS ENDS

STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码

mov  dx,offset string
mov ah,09h
int 21h

mov bx,offset array
mov al,[bx]
xor ah,ah
mov cx,lengthof array-1

again:
inc bx
mov dl,[bx]
xor dh,dh
add ax,dx
loop again

mov dl,lengthof array
div dl
xor ah,ah

call disp

MOV AH,4CH
INT 21H

disp PROC ;子程序定义,子程序名为disp
;功能:以十进制显示AX寄存器中的数值
PUSH BX
PUSH CX
PUSH DX

MOV BL,10		
MOV CL,0		
CMP AX,10		
JB PRINTF			

W:
DIV BL
PUSH AX
INC CL
MOV AH,0
CMP AX,0
JA W
p:
POP DX
DEC CL
MOV DL,DH
ADD DL,48
MOV AH,2
INT 21H
CMP CL,0
JNE P

POP BX			
POP CX			
POP DX			
	RET				

PRINTF:
MOV DL,AL
ADD DL,48
MOV AH,2
INT 21H

POP BX			
POP CX			
POP DX			
	RET				

disp ENDP
CODES ENDS
END START

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5635160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存