void main() {
  __asm {
    mov eax, -1
    mov ecx, -2
    sub eax, ecx         ; // OV = 0, PL = 0, ZR = 0 -> eax > ecx
    mov eax, -2
    mov ecx, -1
    sub eax, ecx         ; // OV = 0, PL = 1, ZR = 0 -> eax < ecx
    mov eax, 7FFFFFFFh   ; // largest positive signed integer
    mov ecx, -1
    sub eax, ecx         ; // OV = 1, PL = 1, ZR = 0 -> eax > ecx
    mov eax, 80000000h   ; // largest negative signed integer
    mov ecx, 1
    sub eax, ecx         ; // OV = 1, PL = 0, ZR = 0 -> eax < ecx
    mov eax, 1           
    mov ecx, 1
    sub eax, ecx         ; // OV = 0, PL = 0, ZR = 1 -> eax == ecx
  }
}