<<< CLC, STC, CMC - Direct Carry Flag Manipulation Index The LAHF and SAHF Instructions >>>

# 11. Overflow Flag Examples

• Examples of 8-bit signed and unsigned addition and subtraction:

```            .DATA
mem8    BYTE    39       ;                                           0010 0111   27
;
.CODE
; Addition + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
;                    signed    unsigned     binary      hex
mov   al, 26     ; Start with register   26       26         0001 1010   1A
inc   al         ; Increment             +1       +1
;                     ----     ----
;                       27       27         0001 1011   1B
;                     ----     ----
;                      103      103         0110 0111   67
;                     ----     ----
mov   ah, al     ; Copy to AH          -114      142         1000 1110   8E (OF) (SF)
add   al, ah     ; Add register      + -114     +142         1000 1110   8E
;                     ----     ----
;                       28       28         0001 1100   1C (OF) (CF)
; Subtraction- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
;                    signed    unsigned     binary      hex
mov   al, 95     ; Load register         95       95         0101 1111   5F
dec   al         ; Decrement           -  1     -  1
;                     ----     ----
;                       94       94         0101 1110   5E
sub   al, 23     ; Subtract immediate  - 23     - 23         1110 1001   E9
;                     ----     ----
;                       71       71         0100 0111   47
sub   al, [mem8] ; Subtract memory    - 122    - 122         0111 1010   7A
;                     ----     ----
;                      -51      205         1100 1101   CD (SF) (CF):borrow
mov   ah, 119    ; Load register
sub   al, ah     ; and subtract       - 119    - 119         0111 0111   77
;                     ----     ----
;                       86       86         0101 0110   56 (OF)
```
• (OF) overflow flag indicates that result is too large to fit in the 8-bit destination operand:

• the sum of two positive signed operands exceeds 127.

• the difference of two negative operands is less than -128.

• (CF) carry flag indicates that the sum of two unsigned operands exceeded 255.

• (SF) sign flag indicates that result goes below 0.