Assembly 集合总和等于0集合CF等于1

Assembly 集合总和等于0集合CF等于1,assembly,x86,sum,zero,Assembly,X86,Sum,Zero,我发现若我在汇编中加上两个数字,它们的和为0,CF就等于一。在其他情况下,情况并非如此。我不明白为什么。有什么想法吗?例如: __asm { mov eax, 0 mov ebx, 5 mov edx, -5 add ebx, edx adc eax, 0 } 结果1我想它会自动回答,只是一个2的补码……进位标志不仅仅告诉您是否有无符号溢出 00000101 +11111011 =====

我发现若我在汇编中加上两个数字,它们的和为0,CF就等于一。在其他情况下,情况并非如此。我不明白为什么。有什么想法吗?例如:

        __asm {
        mov eax, 0
        mov ebx, 5
        mov edx, -5
        add ebx, edx
        adc eax, 0
    }

结果1

我想它会自动回答,只是一个2的补码……进位标志不仅仅告诉您是否有无符号溢出

 00000101
+11111011
===========

111111110       
 00000101
+11111011
===========
 00000000
减法计算出相同的5-5:

111111111       
 00000101
+11111010
===========
 00000000
您可以看到在这两种情况下都没有签名溢出


无符号数学虽然这是0xFB+0x05=0x100,这是一个无符号溢出,因此该标志。

我无意中使用了8位,只是希望至少有4位或更多。800位或8位或80位或32位,其计算结果与您看到的相同。。。和。长话短说,如果你正在考虑你的价值观,那么携带标志其实意义不大。