栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

编程求出数组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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/629278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号