The 8086 instructions are grouped into following main types:
- Data transfer / Copy instruction: These types of instructions are used to transfer data from source operand to destination operand. All the store, move, load, exchange, input and output instructions come in this category
- Arithmetic and logical instruction: These types instructions are used to perform arithmetic and logical, increment, decrement, compare and scan operations.
- Branch instructions: This type of instruction are used to transfer the control of execution to the specified address. Example: call, jump and return instructions.
- Loop instructions: If these instructions have REP prefix with CX used as count register, they can be used to implement unconditional and conditional loops. The LOOP, a LOOPNZ and LOOPZ instrucion belongs to this category.
- Machine control instructions: These instructions control the status of machine. NOP, HLT, WAIT and LOCK instructions are the example of this type.
- Flag manipulation instructions: All the instructions, which directly affect the flag register, come under this group of instructions such as CLD, STD, CLI, STI etc…
- Shift and rotate instructions: These instructions involve the bit-wise shifting or rotating in either direction with or without a count in CX.
- String instructions: These instructions are used to perform various string manipulation operations such as load, move, scan, compare, store etc…