Coupon Accepted Successfully!


8086 Instruction Set

The 8086 instruction set consists of the following instructions:
  • Data Transfer Instructions move, copy, load, exchange, input and output
  • Arithmetic Instructions add, subtract, increment, decrement, convert byte/word and compare
  • Logical Instructions AND, OR, exclusive OR, shift/rotate and test.
  • String Manipulation Instructions load, store, move, compare and scan for byte/word
  • Control Transfer Instructions conditional, unconditional, call subroutine and return from su subroutine.
  • Input/Output Instructions
  • Other Instructions setting/clearing flag bits, stack operations, software interrupts, etc.

Classification of Instructions

The Intel 8086/8088 instructions are classified into the following groups based on the number of bytes in instruction as given below:

  • One-byte instructions
  • Two-byte instructions
  • Three and four-byte instructions
  • Five and six-byte instructions

Data Transfer Instructions


Destination Source
Register Immediate data
Memory Immediate data
Register Register
Register Memory
Memory Register
Segment Memory
Memory Segment
Register Segment
Segment Register

Jump Instructions


Table: Conditional JUMP instructions


JE/JZ Jump on equal/zero



Processor Control Instructions

CLC (Clear the carry flag) CF  0, Flag affected C. The CLC instruction is used the carry flag low. The object code of CLC instruction is 1111 1000 = F8

CMC (Complement the carry flag)
 CF  ~CF, Flag affected C.

The CMC instruction is used to complement the carry flag. The object code of CMC instruction is 1111 0101 = F5.

STC (Set the carry flag)
 CF  1, Flag affected C.

The CMC instruction is used to set the carry flag. The object code of STC instruction is 1111 1001 = F9

CLD (Clear direction flag)
 DF  0, Flag affected: D.

Clear direction flag to 0. When DF = 0, pointer register (SI or DI) is automatically incremented by 1.

The object code of CLD instruction is 1111 1101 = FC.

STD (Set direction flag)
 DF  1, Flag affected: D.

Sets direction flag to 1. When DF = 1, pointer register (SI or DI) is automatically decremented by 1.

The object code of STD instruction is 1111 1101 = FD.

CLI (Clear interrupt flag)
 IF  0, Flag affected: IF.

Clears the interrupt enable flag which disables interrupts.

The object code of CLI instruction is 1111 1010 = FA.

STI (Set interrupt flag)
 IF  1, Flag affected: IF.

Sets the interrupt enable flag which enables interrupts. The object code of STI instruction is 1111 1011 = FB.

HLT (Halt) 
Flag affected: None.

Halt instruction is used to ask the processor to stop execution. Actually hangs the processor in a series of self-inflicted NOP’s until an interrupt occurs. The object code of HLT instruction is 1111 0100 = F4.

WAIT (Wait)
 Flag affected: None.

Causes the processor to wait for completion signal from coprocessor. The object code of WAIT instruction is 1001 1011= 9B.

LOCK (Lock bus)
 Flag affected: None.

This instruction is used to avoid any other processors. Actually, locks the bus attached to LOCK pin of device while a multi-cycle instruction completes. The object code of LOCK instruction is 1111 0000 = F0.

NOP (No operation)
 When NOP instruction is executed, this instruction does not allow the processor to perform any operation except for incrementing the IP by one. The object code of NOP instruction is 1001 0000 = 90.

 The TEST input is examined by a WAIT instruction.

When the WAIT instruction is executed, it holds the operation of processor with the current status till the logic level on the TEST pin is low. Therefore, the processor remains in idle state and the TEST pin goes low.

ESC (Escape)
 The ESC instruction is used as a prefix to the coprocessor instructions. The 8086 processor put the source operand on the data bus but no operation further takes place. The coprocessor continuously examined the data bus content and it is activated by ESC instruction and it reads two operands and thereafter starts execution. The detailed operation is illustrated in the chapter on Coprocessors.


Test Your Skills Now!
Take a Quiz now
Reviewer Name