Assembly 集合总和等于0集合CF等于1
我发现若我在汇编中加上两个数字,它们的和为0,CF就等于一。在其他情况下,情况并非如此。我不明白为什么。有什么想法吗?例如: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 =====
__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位,其计算结果与您看到的相同。。。和。长话短说,如果你正在考虑你的价值观,那么携带标志其实意义不大。