OF标志位溢出的迷惑,求大牛详细解释!
ZF OF SF ZF PFsub al,al 0h/0000 0000b 0 0 0 1 1
mov al,10h 10h/0010 0000b 0 0 0 1 1
add al,90h a0h/1010 0000b 0 0 1 0 1
有符号数执行正常结果 A0 =为有符号数160
al=10h=有符号数-240的补码
90H=为有符号数-112的补码
[-240] + [-112] = [-352]
为什么没有溢出 这里很迷茫啊
mov al, 0f0H ;f0H,为有符号数-16的补码
add al, 088H ;088H为有符号数-120的补码
补充内容 (2012-10-27 01:38):
add运行后结果为78H 这个代码明显溢出正常结果应该是178H 它对应的有符号数是-136
补充内容 (2012-10-27 01:40):
而上面那2个代码 结果为A0 正常结果也是A0 A0对应的有符号数是96怎么算都不会跟-352有联系啊郁闷就郁闷在这里了
补充内容 (2012-10-27 01:41):
A0是有符号数96的补码上面打错了
补充内容 (2012-10-27 01:45):
更为有趣的是我在计算-352的补码 转换2进制然后取反加1的结果是A0 ,但是A0转换成2进制取反加1后的结果是-96 90H+10H 对于无符号数的情况下结果为100H,
因为 al是八位的,
无法存放 所以产生进位,此时CF=1,
100H的补码是多少?是0,0是在-128~127之间,所以没有溢出,OF=0
(90H+10H=100H,al能存放吗?如果按照楼主的算法,你看看AL能不能存放-352的原码、可是奇怪的是能,哈哈、自己去理解下... ...)
更为有趣的是我在计算-352的补码 转换2进制然后取反加1的结果是A0 ,但是A0转换成2进制取反加1后的结果是-96 al=10h为有符号数的时候是正数32,不是-240 仰望天上的光 发表于 2012-10-27 08:22 static/image/common/back.gif
al=10h为有符号数的时候是正数32,不是-240
al=10H 有符号数32 请问您是怎么计算出来的! 学到这里我也很困惑,请敬爱的甲鱼解答下嘛! mov al,10h 10h/0010 0000b 0 0 0 1 1
这里10h的二进制0010 0000b是错的,应该是0001 0000b
页:
[1]