8088
8086/8088 Instruction Set Summary (Continued)
Mnemonic and
Description
Instruction Code
LOGIC
7 6 5 4 3 2 1 0
1 1 1 1 0 1 1 w
1 1 0 1 0 0 v w
1 1 0 1 0 0 v w
1 1 0 1 0 0 v w
1 1 0 1 0 0 v w
1 1 0 1 0 0 v w
1 1 0 1 0 0 v w
1 1 0 1 0 0 v w
7 6 5 4 3 2 1 0
mod 0 1 0 r/m
mod 1 0 0 r/m
mod 1 0 1 r/m
mod 1 1 1 r/m
mod 0 0 0 r/m
mod 0 0 1 r/m
mod 0 1 0 r/m
mod 0 1 1 r/m
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
e
NOT
Invert
e
SHL/SAL
Shift Logical/Arithmetic Left
e
e
e
e
e
e
SHR
SAR
ROL
ROR
RCL
RCR
Shift Logical Right
Shift Arithmetic Right
Rotate Left
Rotate Right
Rotate Through Carry Flag Left
Rotate Through Carry Right
e
AND
And:
Reg./Memory and Register to Either
Immediate to Register/Memory
Immediate to Accumulator
0 0 1 0 0 0 d w
1 0 0 0 0 0 0 w
0 0 1 0 0 1 0 w
mod reg r/m
mod 1 0 0 r/m
data
e
e
data
data if w
1
1
e
e
data if w
1
1
e
TEST
And Function to Flags. No Result:
Register/Memory and Register
1 0 0 0 0 1 0 w
mod reg r/m
Immediate Data and Register/Memory
Immediate Data and Accumulator
1 1 1 1 0 1 1 w
1 0 1 0 1 0 0 w
mod 0 0 0 r/m
data
data
data if w
data if w
e
OR
Or:
Reg./Memory and Register to Either
Immediate to Register/Memory
Immediate to Accumulator
0 0 0 0 1 0 d w
1 0 0 0 0 0 0 w
0 0 0 0 1 1 0 w
mod reg r/m
mod 0 0 1 r/m
data
e
e
data
data if w
1
1
e
e
data if w
1
1
e
XOR
Exclusive or:
Reg./Memory and Register to Either
Immediate to Register/Memory
Immediate to Accumulator
0 0 1 1 0 0 d w
1 0 0 0 0 0 0 w
0 0 1 1 0 1 0 w
mod reg r/m
mod 1 1 0 r/m
data
data
data if w
data if w
STRING MANIPULATION
e
REP
Repeat
1 1 1 1 0 0 1 z
1 0 1 0 0 1 0 w
1 0 1 0 0 1 1 w
1 0 1 0 1 1 1 w
1 0 1 0 1 1 0 w
1 0 1 0 1 0 1 w
e
MOVS
CMPS
SCAS
LODS
STOS
Move Byte/Word
e
e
e
e
Compare Byte/Word
Scan Byte/Word
Load Byte/Wd to AL/AX
Stor Byte/Wd from AL/A
CONTROL TRANSFER
e
CALL
Call:
Direct Within Segment
Indirect Within Segment
Direct Intersegment
1 1 1 0 1 0 0 0
1 1 1 1 1 1 1 1
1 0 0 1 1 0 1 0
disp-low
mod 0 1 0 r/m
offset-low
disp-high
offset-high
seg-high
seg-low
Indirect Intersegment
1 1 1 1 1 1 1 1
mod 0 1 1 r/m
28