二进制减法,进位未设置?

时间:2018-11-13 08:39:02

标签: assembly binary flags

在处理二进制减法和NZCV标志位时,我遇到了一种似乎不太直观的情况。

考虑以下值

0xF7      0b 1111 0111
0xFF      0b 1111 1111

如果它们都被认为是8B值

0x000000F7      0b 0000 .... 0000 1111 0111
0x000000FF      0b 0000 .... 0000 1111 1111

减去后的最终结果是

0x FF FF FF F8    0b 1111 .... 1000

我了解如何找到此结果,但不了解为什么未为此操作设置进位。

据我所知,当从MSB借用时,进位被设置了,不是吗?

1 个答案:

答案 0 :(得分:3)

带有进位(SBC,RSC)的ARM减法指令将进位标志(C)解释为:

  

0:表示借用

     

1:表示无借贷

因此,在您进行计算时,MSB是借来的,并且未设置进位符!