当前位置: 代码迷 >> 汇编语言 >> div除法溢出时,CPU如何判断的溢出?是某个标志位还是其他什么
  详细解决方案

div除法溢出时,CPU如何判断的溢出?是某个标志位还是其他什么

热度:485   发布时间:2016-05-02 04:57:12.0
div除法溢出时,CPU怎么判断的溢出?是某个标志位还是其他什么?
div除法溢出时,CPU怎么判断的溢出?是某个标志位还是其他什么?

------解决方案--------------------
div除法溢出时,会触发异常0,标志寄存器的OV位不会设置。
CPU判断div除法溢出是根据结果作出的,如果64位/32位运算结果商大于32位无符号整数,或者32位/16位运算结果商大于16位无符号整数,则溢出。

------解决方案--------------------
被除数的高半部分大于等于除数时,产生除法溢出,然后直接转0号中断。
------解决方案--------------------
逻辑上这样判断是可以的,但是在硬件实现上通常不会这么做,实际运算中出现溢出的概率是很低的,先进行比较会导致指令执行效率降低。

------解决方案--------------------
引用:
引用:
被除数的高半部分大于等于除数时,产生除法溢出,然后直接转0号中断。

意思是要进行cmp指令比较,引发flag的变化,然后根据标志位来判断溢出?


不是的。 指令在CPU内是如何完成的,我不熟悉,不知“微机原理”或其他课中有无讲解。所以我不知道CPU具体是怎么判断除法溢出的。 

产生“除法溢出”的原因只有“被除数的高半部分大于等于除数”(如0200H/2,0002 0000H/2等,当然包括xxxxH/0),出现这种情况,就引发中断int 0去处理.
  相关解决方案