int main() { __asm { mov eax, 00000000h mov ecx, 00000000h add eax, ecx ; // EAX=0; Flags: OV=0 PL=0 ZR=1 AC=0 PE=1 CY=0 mov eax, 00000000h mov ecx, 00000001h add eax, ecx ; // EAX=1; Flags: OV=0 PL=0 ZR=0 AC=0 PE=0 CY=0 mov eax, 00000001h mov ecx, 0000000Fh add eax, ecx ; // EAX=10; Flags: OV=0 PL=0 ZR=0 AC=1 PE=0 CY=0 mov eax, 00000000h mov ecx, 7FFFFFFFh add eax, ecx ; // EAX=7FFFFFFF; Flags: OV=0 PL=0 ZR=0 AC=0 PE=1 CY=0 mov eax, 00000001h mov ecx, 7FFFFFFFh add eax, ecx ; // EAX=80000000; Flags: OV=1 PL=1 ZR=0 AC=1 PE=1 CY=0 mov eax, 00000001h mov ecx, -2; ; // ECX=FFFFFFFE; (Two's complement) add eax, ecx ; // EAX=FFFFFFFF; Flags: OV=0 PL=1 ZR=0 AC=0 PE=1 CY=0 mov eax, 00000001h mov ecx, -1; ; // ECX=FFFFFFFF; add eax, ecx ; // EAX=00000000; Flags: OV=0 PL=0 ZR=1 AC=1 PE=1 CY=1 } return 0; }