一个令人费解的问题???!!!!!!!!

mahu213 2003-06-04 08:37:55
下面是我的一个练习程序:
计算式:y=(124x34-16)/3
mov si,0200
push cs
pop ds
mov al,22
mov bl,7C
mul bl
sub ax,10
mov bl,3
div bl
mov [0300],al

但到我在debug下单步执行时,在执行div bl时显示divide overflow
但我觉的程序没什么问题啊!
还请各位多多帮忙啊!!!!
...全文
35 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mahu213 2003-06-05
  • 打赏
  • 举报
回复
明白了啊
小弟刚学汇编不久,多谢各位的指教啊!!
现在结帐!!!
lowes 2003-06-05
  • 打赏
  • 举报
回复
sub ax,10
插入:cwd
mov bl,3 ;改为 mov bx,3
div bl ;改为 div bx
当用div做字节除法时,将商放在al,余数在ah,此时被除数在ax
做字除法时,将商放在ax,余数在dx 此时被除数高位在dx,低位在ax
lezi1022 2003-06-05
  • 打赏
  • 举报
回复
y=(124x34-16)/3 =1400余数为0
商放在al,余数在ah.
由于al为8位,最大2^8=256
而你的商是1400,这样当然溢出!

不知道我说的是否正确!
dsft 2003-06-05
  • 打赏
  • 举报
回复
楼上说的对
DIV是这样的
如果是字节运算被除数的高8位绝对值>=除数的绝对值或字运算被除数的高16位绝对值>=除数的
绝对值商就会产生溢出。
ui_ppoppopp 2003-06-04
  • 打赏
  • 举报
回复
要这样用把

xor dx,dx
DIV BX,这样就应该不溢出了

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧