Instruction set of 8086 :
The 8086/8088 instructions are categorized into the following major types. This section describes the function of each of the instructions with appropriate examples wherever necessary.
(i) Data Copy/Transfer Instructions: This type of instructions are utilized to transfer data from source operand to destination operand. All the store, load, move, exchange output and input instructions belong to this category.
(ii) Arithmetic and Logical Instructions: All the instructions performing, logical, arithmetic, decrement, increment, compares and scan instructions belong to this category.
(iii) Branch Instructions: These instructions transfer control of execution to the decided address. All the call, interrupt, jump and return instructions belong to this class.
(iv) Loop Instructions: If these instructions contain REP prefix with CX used as county register, they can be utilized to implement conditional and unconditional loops. The LOOPNZ, LOOP and LOOPZ instructions belong to this category. These are useful to implement different type of loop structures.
(v) Machine Control Instructions: These instructions control the machine status. HLT, WAIT LOCK and NOP, instructions belong to this class.
(vi) Flag Manipulation Instructions: All the instructions which directly affect the flag register they come under this group of instructions. Instructions like STD, CLD, STI, CLI etc. Belong to this category of instructions.
(vii) Shift and Rotate Instructions: These instructions involve the rotation and bitwise shifting in either direction with or without a count in CX.
(viii) String Instructions: These instructions involve various string manipulation operations like move, scan, load, store ,compare, etc. These instructions are just to be operated upon the strings.