用汇编语言编写一完整程序!
发布网友
发布时间:2022-04-22 05:06
我来回答
共5个回答
热心网友
时间:2024-03-03 16:56
;江西理工大学
;今天下午刚好咱们上机课,做了这个题,给你完整答案如下:
DATAS SEGMENT
;此处输入数据段代码
BUFF DW 5,25,55,115,138,159,196,163,20,255
DAT DW 0
SHOW DB 4 DUP(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,0
MOV AX,0
MOV CX,10 ;循环次数设置
MOV SI,OFFSET BUFF
lop1: ;求和
ADD AX,[SI]
ADD SI,2 ;由于数据是DW的,所以地址每次加2
LOOP lop1
MOV CL,10
DIV CL ;求平均,AL存储了平均值,AH存储了余数
;MOV CL,1000
MOV AH,0 ;分解for显示,求余得到从个位到千位
DIV CL
MOV SHOW+3,AH;
ADD SHOW+3,48
;MOV CL,100
MOV AH,0
DIV CL
MOV SHOW+2,AH;
ADD SHOW+2,48
;MOV CL,10
MOV AH,0
DIV CL
MOV SHOW+1,AH;
ADD SHOW+1,48
MOV SHOW+0,AL;
ADD SHOW+0,48
MOV AH,09H ;显示输出
MOV DX,offset SHOW;
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
热心网友
时间:2024-03-03 16:54
mov si,offset BUFF
MOV DI,OFFSET DAT
mov cx,0ah
lop10:
add al,[si]
adc ah,0
inc si
loop lop10
MOV CX,0AH
DIV CL
MOV [DI],AL
热心网友
时间:2024-03-03 16:53
简单呀,首地址为BUFF,那么可以这样编写哦:
MOV R0,#BUFF
MOV R1,#0AH //设置个数
CLR A
LOOP: ADD A,@R0
INC R0
DJNZ R1,LOOP //判断10个数加完了没有
MOV B,#0AH //设置除数
DIV AB //最后得到的结果商存于A中,有余数的话存于B中
MOV DAT,A //最后在把平均值存于DAT中
END //结尾要打end符合哦,不然会报错!
------more(单片机高手)
热心网友
时间:2024-03-03 16:57
先读首地址然后地址递增相加,最后除以总数就行了
热心网友
时间:2024-03-03 16:52