The 8086 instructions are grouped into following main types:

  1. 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
  2. Arithmetic and logical instruction: These types instructions are used to perform arithmetic and logical, increment, decrement, compare and scan operations.
  3. Branch instructions: This type of instruction are used to transfer the control of execution to the specified address. Example: call, jump and return instructions.
  4. 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.
  5. Machine control instructions: These instructions control the status of machine. NOP, HLT, WAIT and LOCK instructions are the example of this type.
  6. 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…
  7. Shift and rotate instructions: These instructions involve the bit-wise shifting or rotating in either direction with or without a count in CX.
  8. String instructions: These instructions are used to perform various string manipulation operations such as load, move, scan, compare, store etc…