问题描述
我目前正在为学校做一个汇编作业,我需要声明一个 10 元素的数组,用从 1 到 10 的整数的连续平方初始化数组,然后计算这些值的平均值并将它们存储到一个变量。但是,当我从内存中检索第一个值以计算平均值而不是按预期返回 0001 时,它在 AX 寄存器中返回 0401,这比应有的值高得多。有人能够快速查看我的代码并指出我做错了什么吗?代码如下,谢谢:
.model small
.stack 32
.data
arr DW 10 DUP(0)
RES DW ?
.code
MAIN proc FAR
MOV AX,@data
MOV DS,AX
CALL INIT
CALL AVG
MOV RES,AX
MOV AX,4C00H
INT 21H
MAIN endp
INIT proc NEAR
MOV CX,10
LEA BX,arr
MOV SI,1
A: MOV AX,SI
MUL SI
MOV [BX],AX
INC SI
INC BX
LOOP A
RET
INIT endp
AVG proc NEAR
MOV CX,10
LEA BX,arr
MOV AX,0
MOV DX,10
B: ADD AX,[BX]
INC BX
LOOP B
DIV DX
RET
AVG endp
end MAIN
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)