+ -
当前位置:首页 → 问答吧 → 这是小弟编的一道汇编 但是除了问题 实在是没办法了

这是小弟编的一道汇编 但是除了问题 实在是没办法了

时间:2010-11-22

来源:互联网

两个多位十进制数相加:将两个多位十进制数(0~9999)相加,加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
DATA SEGMENT
D1 DB 'PLEASE ENTER FIRST NUMBER:',0DH,0AH,'$'
D2 DB 'PLEASE ENTER SECOND NUMBER:',0DH,0AH,'$'
D3 DB 'THE RESULT IS:',0DH,0AH,'$' 
DATA1 DB 5 DUP(0)
DATA2 DB 5 DUP(0)
D4 DB 6 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
  MOV DS,AX
INPUT1: MOV DX,OFFSET D1  
  MOV AH,9
  INT 21H
  MOV CX,6
  MOV BX,0FFFFH
LL1: INC BX
  MOV AH,1
  INT 21H
  CMP AL,0DH
  JZ L1
  MOV [D4+BX],AL
L1: LOOPNZ LL1
MOV CX,BX
  DEC BX
  LEA DI,DATA1
LL2: LEA AX, [D4+BX]
  MOV [DI],AX
  MOV BYTE PTR[D4+BX],0H
  INC DI
  DEC BX
  LOOP LL2
INPUT2: MOV DL,0DH
  MOV AH,2
  INT 21H
  MOV DL,0AH
  MOV AH,2
  INT 21H
  LEA DX,D2  
  MOV AH,9
  INT 21H
  MOV CX,6
  MOV BX,0FFFFH
LL3: INC BX
  MOV AH,1
  INT 21H
  CMP AL,0DH
  JZ L2
  MOV [D4+BX],AL
L2: LOOPNZ LL3
MOV CX,BX
  DEC BX
  MOV DI,OFFSET DATA2
LL4: LEA AX, [D4+BX]
  MOV [DI],AX
  MOV BYTE PTR[D4+BX],0H
  INC DI
  DEC BX
  LOOP LL4
RESULT: MOV DI,OFFSET DATA1
  MOV SI,OFFSET DATA2
  MOV CX,5
  MOV AH,0H  
LL5: MOV AL,[DI]
  MOV BH,AH
  MOV AH,0H
  ADD AL,BH
  AAA
  ADD AL,[SI]
  AAA
  MOV [DI],AL
  INC SI
  INC DI
  LOOP LL5
OUTPUT: MOV DL,0DH
  MOV AH,2
  INT 21H
  MOV DL,0AH
  INT 21H
  LEA DX,D3
  MOV AH,9
  INT 21H
  LEA SI,[DATA1+5]
  MOV CX,5
LL6: DEC SI
  CMP BYTE PTR [SI],0H
  LOOPZ LL6
  MOV CX,SI
  SUB CX,OFFSET DATA1
  INC CX
LL7: MOV DL,[SI]
  ADD DL,30H
  MOV AH,2
  INT 21H
  DEC SI
  LOOP LL7
  MOV AH,4CH
  INT 21H
CODE ENDS
  END START  
  输出的结果总是不对 求高人提供下解决方案啊
   

作者: bs360   发布时间: 2010-11-22

debug了吗?

作者: masmaster   发布时间: 2010-11-22