注册 登录
编程论坛 汇编论坛

很简单的一个题,求高手检查批评

爱行节列 发布于 2012-10-26 20:17, 573 次点击
原题是这样的:
    求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。
    编程要求与提示:    [1] 两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。    [2] 和以压缩十进制数的形式存入SUM以下单元。    [3] 将和送到屏幕显示部分功能的实现采用子程序的形式。
这是我编的 STACK SEGMENT STACK
      DB 100H DUP(00)
STACK ENDS
DATA  SEGMENT
ADD1  DB 32H,85H,67H,12H
ADD2  DB 43H,65H,73H,21H
SUM   DB 4 DUP(00)
DATA  ENDS
CODE  SEGMENT
      ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
      MOV AX,DATA
      MOV DS,AX
      MOV ES,AX
      MOV AX,STACK
      MOV SS,AX
      LEA SI,ADD1
      MOV CX,4         ;循环次数4
      CLC      
L1:   MOV AL,ADD1[SI]
      MOV BL,ADD2[SI]
      ADC AL,BL
      DAA
      MOV SUM[SI],AL
      INC SI
      LOOP L1
      MOV CX,4
L2:  MOV AL,SUM[SI+3]
      CALL DISPAL
      DEC SI
      LOOP L2      
DISPAL PROC NEAR       ;显示AL中的十进制数
       PUSH AX
       PUSH CX
       PUSH DX
       PUSH AX
       MOV CL,4        ;AL中的高十六位
       SHR AL,CL
       ADD AL,30H      ;十六进制数变换成ASC码
       MOV AH,02
       MOV DL,AL
       INT 21H         ;显示一位字符
       POP AX
       AND AL,0FH      ;AL中的低十六位
       ADD AL,30H
       MOV AH,02H
       MOV DL,AL
       INT 21H
       POP DX
       POP CX
       POP AX
       RET
DISPAL ENDP
CODE   ENDS
       END START
汇编没有问题,但debug的时候用G指令的结果全是0,有4、5行
5 回复
#2
有容就大2012-10-26 20:37
问题出在这循环
L2:  MOV AL,SUM[SI+3]
      CALL DISPAL
      DEC SI
      LOOP L2
你的si已经指向SUM的第5个db了
你的L2是想倒过来显示 那么必须先把si减一 在把sum[si + 3]改成sum[si]
具体是这样
程序代码:
     DEC SI
L2:  MOV AL,SUM[SI]
      CALL DISPAL
      DEC SI
      LOOP L2  

#3
zklhp2012-10-26 20:40
以下是引用有容就大在2012-10-26 20:37:59的发言:

问题出在这循环
L2:  MOV AL,SUM[SI+3]
      CALL DISPAL
      DEC SI
      LOOP L2你的si已经指向SUM的第5个db了
你的L2是想倒过来显示 那么必须先把si减一 在把sum[si + 3]改成sum[si]
具体是这样
     DEC SI
L2:  MOV AL,SUM[SI]
      CALL DISPAL
      DEC SI
      LOOP L2  

头像挺好看

有容兄 你发图片能发么。。
#4
有容就大2012-10-26 21:16
只有本站会员才能查看附件,请 登录

可以啊 。。。 firefox发的
#5
爱行节列2012-10-27 12:33
回复 2楼 有容就大
还是不太对,不过还是谢谢了。已经弄出来了,是小问题。
#6
有容就大2012-10-27 12:47
我那个改法得到这个结果应该没错吧 注意小写
只有本站会员才能查看附件,请 登录

1