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

运行结果为什么会是Divide overflow?哪里出错了,请高手指教。。。。

mahuajie 发布于 2010-05-04 18:06, 1189 次点击
DATAS SEGMENT
  STR DB 'PLEASE INPUT A NO.:$'  
  DATA1 DB 100
  DB ?
  DB 100 DUP(?)
  DATA2 DB 100
  DB ?
  DB 100 DUP(?)
  DATA3 DB 100 DUP(?)
  CRLF DB 0AH,0DH,'$'
DATAS ENDS
CODE SEGMENT  
  ASSUME CS:CODE,DS:DATAS
START:MOV AX,DATAS
  MOV DS,AX
  LEA DX,STR   
  MOV AH,9
  INT 21H
  LEA DX,DATA1
  MOV AH,10
  INT 21H
  LEA DX,CRLF
  MOV AH,09H
  INT 21H
  LEA DX,STR   
  MOV AH,9
  INT 21H
  LEA DX,DATA2   
  MOV AH,10
  INT 21H  
  LEA DX,CRLF
  MOV AH,09H
  INT 21H   
  LEA BX,DATA1+1
  MOV CX,[BX]
  MOV DX,CX
  LEA SI,DATA1+2
  ADD SI,[BX]   
  LEA DI,DATA2+2
  ADD DI,[BX]
  LEA BX,DATA3
  ADD BX,CX   
  MOV AH,00H
AGAIN:MOV AL,[SI]
  SAHF   
  ADC AL,[DI]
  AAA   
  LAHF
  ADD AL,30H
  MOV [BX],AL
  DEC BX
  DEC SI
  DEC DI
  LOOP AGAIN
  MOV CX,DX  
 L4:LEA SI,DATA3
  MOV DL,[SI]
  MOV AH,2
  INT 21H
  INC SI
  LOOP L4
  MOV AH,4CH
  INT 21H
CODE ENDS
  END START
以上程序是把两个任意位数的数相加。可运行结果为什么会是Divide overflow?哪里出错了,请高手指教。。。。
3 回复
#2
ONEPROBLEM2010-05-05 08:21
程序有点长哦,没耐心看了。
Divide overflow是除法溢出的提示信息!
解决方法:可参考王爽《汇编语言》的实验10“编写子程序”的内容。
#3
faithman2010-05-07 21:36
回复 楼主 mahuajie
debug 呵呵
#4
fgchg9112010-05-09 15:21
我都没看到div指令,咋提示除法溢出呢,不懂
1