请帮忙看看我的程序写得对吗

123anmanny 2003-07-04 10:47:07
在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的和,并将和数存入以SUM为首址的数据区中。

DATA SEGMENT
BUF1 DW -56,24,54,-1,89,-8……
BUF2 DW 45,-23,124,345,-265,……
SUM DW 10 DUP(0)
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
   MOV DS,AX
   LEA SI,BUF1
   LEA DI,BUF2
   LEA DX,SUM
   MOV CX,10
AGAIN:MOV AX,SI
   MOV BX,DI
   ADD AX,BX
   MOV DX,AX
   MOV SUM,DX
   INC SI
   INC DI
   INC DX
   LOOP AGAIN
START ENDS
   END

请帮忙看看我的程序写得对吗,或者有其它更好的
...全文
41 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaott 2003-07-04
  • 打赏
  • 举报
回复
不对,结果显然是最后一个带符号数的和,因为你是用MOV SUM,DX,而且地址修改也不正确!
改为:
.
.
.
lea si,buf1
lea di,buf2
lea bx,sum
again:mov ax,si
add ax,[di]
mov [bx],ax ;保存每项的和
add si,2 ;地址加二(因为是字,两个存储单元)
add di,2
add bx,2
loop again
.
.
.
ahjoe 2003-07-04
  • 打赏
  • 举报
回复
DATA SEGMENT
BUF1 DW -56,24,54,-1,89,-8……
BUF2 DW 45,-23,124,345,-265,……
SUM DW 10 DUP(0)
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
   MOV DS,AX
MOV ES, AX
   LEA SI,BUF1
   LEA DI,BUF2
   LEA BX,SUM
   MOV CX,10
AGAIN:MOV AX,[SI]
   MOV DX,[DI]
   ADD AX,DX
   MOV [BX],AX
   ADD SI,2
   ADD DI,2
   ADD BX,2
   LOOP AGAIN
START ENDS
   END
123anmanny 2003-07-04
  • 打赏
  • 举报
回复
多谢两位 ̄

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧