Intel 8086 instruction set

MOD/RM byte - effective address calculation
  x0  x1  x2  x3  x4  x5  x6  x7 
 0x DS:[BX+SI]
0   7
DS:[BX+DI]
0   8
SS:[BP+SI]
0   8
SS:[BP+DI]
0   7
DS:[SI]
0   5
DS:[DI]
0   5
DS:[a16]
2   6
DS:[BX]
0   5
 4x DS:[BX+SI+rel8]
1   11
DS:[BX+DI+rel8]
1   12
SS:[BP+SI+rel8]
1   12
SS:[BP+DI+rel8]
1   11
DS:[SI+rel8]
1   9
DS:[DI+rel8]
1   9
SS:[BP+rel8]
1   9
DS:[BX+rel8]
1   9
 8x DS:[BX+SI+rel16]
2   11
DS:[BX+DI+rel16]
2   12
SS:[BP+SI+rel16]
2   12
SS:[BP+DI+rel16]
2   11
DS:[SI+rel16]
2   9
DS:[DI+rel16]
2   9
SS:[BP+rel16]
2   9
DS:[BX+rel16]
2   9
 Cx AL / AX
0   0
CL / CX
0   0
DL / DX
0   0
BL / BX
0   0
AH / SP
0   0
CH / BP
0   0
DH / SI
0   0
BH / DI
0   0
* Here the additional bytes and cycles are to be added to instruction length and duration, it is marked by "+" sign after respective values in instruction listing.


       Misc/control instructions
       Jumps/calls
       ...
       ...
       ...
       ...
 
 
Length in bytes →
 
  INS reg
2  7
ODITSZAPC
  ← Instruction mnemonic
← Duration in cycles
← Flags affected
  Duration of conditional calls and returns is different when action is taken or not. This is indicated by two numbers separated by "/". The higher number (on the left side of "/") means duration of instruction when action is taken, the lower number (on the right side of "/") means duration of instruction when action is not taken.