<<< IMUL Signed Integer Multiplication     Index     INT Software Interrupt >>>


INC Increment Operand

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:

        INC r8
        INC m8
        INC r16
        INC m16
        INC r32    386+
        INC m32    386+

Examples:

        INC AL
        INC BX
        INC EDX
        INC BYTE [BP]   ; Increments the BYTE at [BP]
        INC WORD [BX]   ; Increments the WORD at [BX]
        INC DWORD [ESI] ; Increments the DWORD at [ESI]

Notes:

Remember that segment registers cannot be incremented with INC. All register-half (r8) opcodes are 2 bytes in length, but all 16-bit register (r16) opcodes are 1 byte in length. If you can increment an entire register of which only the lower half contains data, use the 16-bit opcode and save a byte.

As with all instructions that act on memory, memory data forms must be used with a data size specifier such as BYTE, WORD, and DWORD! NASM doesn't assume anything!

        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


<<< IMUL Signed Integer Multiplication     Index     INT Software Interrupt >>>