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;
}