编程求出数组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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)