<<< ADC Arithmetic Addition with Carry     Index     AND Logical AND >>>


ADD Arithmetic Addition

Flags affected:

        O D I T S Z A P C  OF: Overflow flag  TF: Trap flag AF: Aux carry
        F F F F F F F F F  DF: Direction flag SF: Sign flag PF: Parity flag
        *       * * * * *  IF: Interrupt flag ZF: Zero flag CF: Carry flag

Legal forms:

        ADD r8,r8
        ADD m8,r8
        ADD r8,m8
        ADD r16,r16
        ADD m16,r16
        ADD r16,m16
        ADD r32,r32    386+
        ADD m32,r32    386+
        ADD r32,m32    386+
        ADD r8,i8
        ADD m8,i8
        ADD r16,i16
        ADD m16,i16
        ADD r32,i32    386+
        ADD m32,i32    386+
        ADD r16,i8
        ADD m16,i8
        ADD r32,i8     386+
        ADD m32,i8     386+
        ADD AL,i8
        ADD AX,i16
        ADD EAX,i32    386+

Examples:

        ADD BX,DI
        ADD AX,0FFFFH            ;Uses single-byte opcode
        ADD AL,42H               ;Uses single-byte opcode
        ADD EAX,5
        ADD BP,17H
        AND DWORD [EDI],EAX
        ADD WORD [BX+SI+Inset],5
        ADD WORD ES:[BX],0B800H

Notes:

ADD adds the source operand to the destination operand, and after the operation, the result replaces the destination operand. The add operation is an arithmetic add, and does not take the Carry flag into account. (To add using the Carry flag, use the ADC Add with Carry instruction.) All affected flags are set according to the operation. Most importantly, if the result does not fit into the destination operand, the Carry flag is set to 1.

        r8 = AL AH BL BH CL CH DL DH        r16 = AX BX CX DX BP SP SI DI
        sr = CS DS SS ES FS GS              r32 = EAX EBX ECX EDX EBP ESP ESI EDI
        m8 = 8-bit memory data              m16 = 16-bit memory data
        m32 = 32-bit memory data            i8 = 8-bit immediate data
        i16 = 16-bit immediate data         i32 = 32-bit immediate data
        d8 = 8-bit signed displacement      d16 = 16-bit signed displacement
        d32 = 32-bit unsigned displacement


<<< ADC Arithmetic Addition with Carry     Index     AND Logical AND >>>