
M80C186
GENERAL PURPOSE
MOV
Move byte or word
PUSH
Push word onto stack
POP
Pop word off stack
PUSHA
Push all registers on stack
POPA
Pop all registers from stack
XCHG
Exchange byte or word
XLAT
Translate byte
INPUT/OUTPUT
IN
Input byte or word
OUT
Output byte or word
ADDRESS OBJECT
LEA
Load effective address
LDS
Load pointer using DS
LES
Load pointer using ES
FLAG TRANSFER
LAHF
Load AH register from flags
SAHF
Store AH register in flags
PUSHF
Push flags onto stack
POPF
Pop flags off stack
ADDITION
ADD
Add byte or word
ADC
Add byte or word with carry
INC
Increment byte or word by 1
AAA
ASCII adjust for addition
DAA
Decimal adjust for addition
SUBTRACTION
SUB
Subtract byte or word
SBB
Subtract byte or word with borrow
DEC
Decrement byte or word by 1
NEG
Negate byte or word
CMP
Compare byte or word
AAS
ASCII adjust for subtraction
DAS
Decimal adjust for subtraction
MULTIPLICATION
MUL
Multiply byte or word unsigned
IMUL
Integer multiply byte or word
AAM
ASCII adjust for multiply
DIVISION
DIV
Divide byte or word unsigned
IDIV
Integer divide byte or word
AAD
ASCII adjust for division
CBW
Convert byte to word
CWD
Convert word to doubleword
MOVS
Move byte or word string
INS
Input bytes or word string
OUTS
Output bytes or word string
CMPS
Compare byte or word string
SCAS
Scan byte or word string
LODS
Load byte or word string
STOS
Store byte or word string
REP
Repeat
REPE/REPZ
Repeat while equal/zero
REPNE/REPNZ
Repeat while not equal/not zero
LOGICALS
NOT
‘‘Not’’ byte or word
AND
‘‘And’’ byte or word
OR
‘‘Inclusive or’’ byte or word
XOR
‘‘Exclusive or’’ byte or word
TEST
‘‘Test’’ byte or word
SHIFTS
SHL/SAL
Shift logical/arithmetic left byte or word
SHR
Shift logical right byte or word
SAR
Shift arithmetic right byte or word
ROTATES
ROL
Rotate left byte or word
ROR
Rotate right byte or word
RCL
Rotate through carry left byte or word
RCR
Rotate through carry right byte or word
FLAG OPERATIONS
STC
Set carry flag
CLC
Clear carry flag
CMC
Complement carry flag
STD
Set direction flag
CLD
Clear direction flag
STI
Set interrupt enable flag
CLI
Clear interrupt enable flag
EXTERNAL SYNCHRONIZATION
HLT
Halt until interrupt or reset
WAIT
Wait for TEST pin active
ESC
Escape to extension processor
LOCK
Lock bus during next instruction
NO OPERATION
NOP
No operation
HIGH LEVEL INSTRUCTIONS
ENTER
Format stack for procedure entry
LEAVE
Restore stack for procedure exit
BOUND
Detects values outside prescribed range
Figure 4. M80C186 Instruction Set
12