Intel 80C186XL Computer Hardware User Manual


 
A-1
APPENDIX A
80C186 INSTRUCTION SET
ADDITIONS AND EXTENSIONS
The 80C186 Modular Core family instruction set differs from the original 8086/8088 instruction
set in two ways. First, several instructions that were not available in the 8086/8088 instruction set
have been added. Second, several 8086/8088 instructions have been enhanced for the 80C186
Modular Core family instruction set.
A.1 80C186 INSTRUCTION SET ADDITIONS
This section describes the seven instructions that were added to the base 8086/8088 instruction
set to make the instruction set for the 80C186 Modular Core family. These instructions did not
exist in the 8086/8088 instruction set.
Data transfer instructions
PUSHA
POPA
String instructions
—INS
OUTS
High-level instructions
ENTER
—LEAVE
BOUND
A.1.1 Data Transfer Instructions
PUSHA/POPA
PUSHA (push all) and POPA (pop all) allow all general-purpose registers to be stacked and un-
stacked. The PUSHA instruction pushes all CPU registers (except as noted below) onto the stack.
The POPA instruction pops all registers pushed by PUSHA off of the stack. The registers are
pushed onto the stack in the following order: AX, CX, DX, BX, SP, BP, SI, DI. The Stack Pointer
(SP) value pushed is the Stack Pointer value before the AX register was pushed. When POPA is
executed, the Stack Pointer value is popped, but ignored. Note that this instruction does not save
segment registers (CS, DS, SS, ES), the Instruction Pointer (IP), the Processor Status Word or
any integrated peripheral registers.