当前位置: 代码迷 >> 汇编语言 >> 小疑点,不清楚
  详细解决方案

小疑点,不清楚

热度:5972   发布时间:2013-02-26 00:00:00.0
小问题,不清楚
7f+1h标志显示溢出,而80h+1h则显示不溢出,为什么?

AF到底是半子节(也就是除2)进位或借位为1还是第三位借位或进位为1?

------解决方案--------------------------------------------------------
溢出的判定原则:
次高位(bit 6)向最高位(bit 7)有进位,最高位(bit 8)向上无进位。

7f+1h

0111 1111(正数)
+0000 0001(正数)
----------
1000 0000(负数);两个正数相加,结果是负数,所以溢出。

结果:bit 6向bit 7有进位,bit 7向bit 8没有进位。所以没有溢出,只有进位。OF=0,CF=1

80h+1h

1000 0000(负数)
+0000 0001(正数)
----------
1000 0001(负数)负数与正数相加,结果仍然是负数,所以没有溢出
结果没有进位和溢出。

》AF到底是半子节(也就是除2)进位或借位为1还是第三位借位或进位为1?

都是,
0000 0000

bit 3到bit 4的进位,或者是bit 4到bit 3的借位,都将设置辅助进位或借位标志


0001 0000
-0000 0001
----------
0000 1110 AF=1

0000 1111
+0000 0001
----------
0001 0000 AF=1


  相关解决方案