+ -
当前位置:首页 → 问答吧 → 除法溢出问题。。。恳求大虾帮帮忙

除法溢出问题。。。恳求大虾帮帮忙

时间:2010-11-22

来源:互联网

data segment 
  B dw 02Fh
data ends 
   
stack segment STACK 
  dw 256 dup(0) 
  tos label word 
stack ends 
code segment 
  assume cs:code,ds:data 
begin:
  mov ax,0d
  mov ax,0dh
  mov ax,data 
  mov ds,ax 
  mov es,ax 
   
  mov ax,stack 
  mov ss,ax 
  mov sp,offset tos 
   
  xor ax,ax 
  mov ax,B
  xor dx,dx  
  xor cx,cx 

DoDiv:
  mov bx,10  
  div bx  
   
  add dx,30h
  push dx  
  inc cx 
  cmp ax,0  
  jnz DoDiv 
   
DoPrt:
  pop bx  
  mov ah,2 
  int 21h 
  loop DoPrt 
   
exit:
  mov ax,4c00h 
  int 21h 
code ends 
  end begin 

由于刚刚学汇编,各方请教后试着写了个将二进制转化成十进制的代码,结果运行时提示除法溢出,研究了老半天都没结果,实在搞不懂呀,望哪位老兄指点一二呀。。。。。不胜感激。。。。

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

http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=32262&kindLevel=1&kindId=47796&postId=49321&readSg=1
这里是我写的一个练习,里面涵盖了二进制八进制十进制十六进制之间相互转化的一个程序。 你参考一下吧。

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

除法溢出是因为DoDiv:段中没有xor dx,dx
第一遍除法后dx中存了余数
jnz DoDiv 后 dx ax 的值比原来的被除数更大

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

热门下载

更多