我的书和大多数资料显示,当进位标志从0更改为1时,但我不明白为什么EFL寄存器会以更大的增量更改值,如下所示:我在注释中显示了寄存器值的更改。就像从0到1移回0到-1时一样。
mov eax , 0FFFFFFFFh
add eax , 1 ;flag from A12 to 257
inc eax ; flag to 203
neg eax ; flag to 297
inc eax ; flag to 257
dec eax ; flag to 297
inc eax ; flag to 257
dec eax ; flag to 297
mov ebx , 0 ;flag doesnt move
sub ebx , 1 ;flag doesnt move
inc ebx ; flag move to 257
dec ebx ; flag move to 297
dec eax ; flag to 283
mov ebx , 0 ;flag doesnt move
sub ebx , 1 ;flag to 297
mov eax , 00FFFFFFFh ;flag doesnt move
add eax , 1 ;flag to 216
mov ebx , 0Fh ;flag doesnt move
sub ebx , 1 ;flag to 202
[Wikipedia条目具有解释和参考,它们是准确了解它们如何工作的良好起点。