溢出标志位OF是怎么算出来的?
本帖最后由 死亡请帖 于 2011-7-27 10:48 编辑下面是书上的两个例子:
1111 0000
+ 0111 1000
─────────
1 0110 1000 没有溢出OF=0
1111 0000
+ 1000 1000
─────────
1 0111 1000 发生溢出OF=1
我知道有符号的不应该这样算,但CPU就是这么算的,它不会先求补码的反码加1,它内部就是这么算的,那么它是怎么得出OF的值的?
从CPU的角度想。
{:5_98:}顶!!! 我怎么觉得两个都溢出了…… cpu 如何判断数据是否溢出(转贴)
http://bbs.fishc.com/forum.php?mod=viewthread&tid=3416&fromuid=106565
小乌龟 发表于 2011-7-27 10:10 static/image/common/back.gif
我怎么觉得两个都溢出了……
那两个1吗,是进位。
无比菜鸟 发表于 2011-7-27 10:45 static/image/common/back.gif
cpu 如何判断数据是否溢出(转贴)
http://bbs.fishc.com/forum.php?mod=viewthread&tid=3416&fromuid=106 ...
{:5_98:}兄弟,正是我需要的! 本帖最后由 lijiediao 于 2019-6-15 11:42 编辑
小乌龟 发表于 2011-7-27 10:10
我怎么觉得两个都溢出了……
我也觉得两个都溢出
例如:设A=78H、R1=64H ,分析执行指令 ADDA,R1后对PSW中标志位的影响。
78H 01111000
+64H 01100100
——————————
11011100
执行后,C=0、AC=0,次高位有进位但最高位无进位,故OV=0⊕1=1
页:
[1]