Professional Documents
Culture Documents
8086 Instruction Set
8086 Instruction Set
OPCODE
AAA
AAD
AAM
AAS
ADC
ADD
AND
CALL
CBW
CLC
CDL
CLI
CMC
CMP
CMPS
CMPSB
CMPSW
CWD
DAA
DAS
DEC
DIV
ESC
HLT
IDIV
IMUL
IN
INC
INT
INTO
IRET
JA
JAE
JB
JBE
JC
JCXZ
JE
JG
JGE
JL
JLE
JMP
DESCRIPTION
ASCII adjust addition
ASCII adjust division
ASCII adjust multiply
ASCII adjust subtraction
dt,sc Add with carry
dt,sc Add
dt,sc Logical AND
proc
Call a procedure
Convert byte to word
Clear carry flag
Clear direction flag
Clear interrupt flag
Complement carry flag
dt,sc Compare
[dt,sc] Compare string
"
"
bytes
"
"
words
Convert word to double word
Decimal adjust addition
Decimal adjust subtraction
dt
Decrement
sc
Unsigned divide
code,sc Escape
Halt
sc
Integer divide
sc
Integer multiply
ac,port Input from port
dt
Increment
type
Interrupt
Interrupt if overflow
Return from interrupt
slabel Jump if above
slabel Jump if above or equal
slabel Jump if below
slabel Jump if below or equal
slabel Jump if carry
slabel Jump if CX is zero
slabel Jump if equal
slabel Jump if greater
slabel Jump if greater or equal
slabel Jump if less
slabel Jump if less or equal
label Jump
JNA
JNAE
JNB
JNBE
JNC
JNE
JNG
JNGE
JNL
JNLE
JNZ
JNO
JNP
JNS
JO
JPO
JP
JPE
JS
JZ
LAHF
LDS
LEA
LES
LOCK
LODS
LODSB
LODSW
LOOP
LOOPE
LOOPZ
LOOPNE
LOOPNZ
MOV
MOVS
MOVSB
MOVSW
MUL
NEG
NOP
NOT
OR
OUT
POP
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
slabel
dt,sc
dt,sc
dt,sc
[sc]
"
"
slabel
slabel
slabel
slabel
slabel
dt,sc
[dt,sc]
"
"
sc
dt
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Jump
Load
Load
Load
Load
Lock
Load
Loop
Loop
Loop
Loop
Loop
Move
Move
if not above
if not above or equal
if not below
if below or equal
if no carry
if not equal
if not greater
if not greater or equal
if not less
if not less or equal
if not zero
if not overflow
if not parity
if not sign
if overflow
if parity odd
if parity
if parity even
if sign
if zero
AH from flags
pointer using DS
effective address
pointer using ES
bus
string
"
bytes
"
words
if
if
if
if
equal
zero
not equal
not zero
string
"
bytes
"
words
Unsigned multiply
Negate
No operation
dt
Logical NOT
dt,sc
Logical OR
port,ac output to port
dt
Pop word off stack
POPF
PUSH
PUSHF
RCL
RCR
REP
REPE
REPZ
REPNE
REPNZ
RET
ROL
ROR
SAHF
SAL
SHL
SAR
SBB
SCAS
SCASB
SCASW
SHR
STC
STD
STI
STOS
STOSB
STOSW
SUB
TEST
WAIT
XCHG
XLAT
XLATB
XOR
sc
dt,cnt
dt,cnt
[pop]
dt,cnt
dt,cnt
dt,cnt
dt,cnt
dt,cnt
dt,sc
[dt]
"
"
dt,cnt
[dt]
"
"
dt,sc
dt,sc
dt,sc
table
"
dt,sc
Notes:
dt - destination
sc source
label may be near or far address
slabel near address