首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

除法溢出解决方法

2012-02-16 
除法溢出STACKSSEGMENTSTACKSTKDB20 DUP(?)STACKSENDSDATASSEGMENTDATA1DD12345678HDATA2DD98765443HRLTDD

除法溢出
STACKS SEGMENT STACK
  STK DB 20 DUP(?)
  STACKS ENDS

  DATAS SEGMENT
  DATA1 DD 12345678H
  DATA2 DD 98765443H
  RLT DD ?
  DATAS ENDS

  CODES SEGMENT
  ASSUME DS:DATAS,SS:STACKS,CS:CODES
  START: MOV AX,DATAS
  MOV DS,AX

  MOV AX,WORD PTR DATA1
  ADD AX,WORD PTR DATA2

  MOV DX,WORD PTR DATA1+2
  ADC DX,WORD PTR DATA2+2

  MOV BX,0FFFFH
  IDIV BX
   
  MOV AX,4C00H
  INT 21H


  CODES ENDS
  END START
运行后总是提示除法溢出:
但是aaaa aabb\ffff 结果用计算机算的aaab并没有溢出啊?
郁闷啊?


[解决办法]
IDIV是有符号除法,0FFFFH作为有符号数表示-1,所以溢出。改成DIV就不会溢出了。
[解决办法]
楼上正解
[解决办法]
看看你的操作数的大小及类型,注意除法指令的种类。div/idiv

热点排行