为什么在此减法中打开进位标志

时间:2015-12-10 18:40:30

标签: assembly binary

=    6   -    9
= 00000110-00001001 
= 00000110+(11110110+1)
= 00000110+11110111
= 11111101

这里我们看不到随身携带标志如何开启?    我是编程的新手

1 个答案:

答案 0 :(得分:0)

a - b = a +( - b)我们知道对于二进制补码你反转并加一个来否定数字所以a - b = a +(〜b)+ 1

      1 
 000110
+110110
=======

如此填写

 001101 
 000110
+110110
========
 111101

你的执行是0,这意味着有借,我假设你在x86上?有时执行是倒置的,表示借用1 vs只是随身携带。 (就像你在途中反转进位和第二操作数一样)。

但更简单的6 - 9意味着你必须借用,所以结果有进位标志表示借用你的处理器表明有些表明一个进位1是借用一些不反转而一个0是借位。如果你有一个借用减去可以在第一个减法或先前减去借用以获得更宽的数学,那么借用减法。

和6 - 9 = -3即111111 .... 1111101或取3(0b11)反转并添加一个1111..11100 + 1 = 11111 ... 111101。所以预期的结果是11111 ... 111101,并指示借款。