English
Language : 

80C286_08 Datasheet, PDF (9/60 Pages) Intersil Corporation – High Performance Microprocessor with Memory Management and Protection
80C286
Instruction Set
The instruction set is divided into seven categories: data
transfer, arithmetic, string manipulation, shift/rotate/logical,
high level, processor control and control transfer instruc-
tions. These categories are summarized in Table 2.
An 80C286 instruction can reference zero, one, or two oper-
ands; where an operand may reside in a register, in the
instruction itself, or in memory. Zero-operand instructions
(e.g. NOP and HLT) are usually one byte long. One-operand
instructions (e.g. INC and DEC) are usually two bytes long
but some are encoded in only one byte. One-operand
instructions may reference a register or memory location.
Two-operand instructions permit the following six types of
instruction operations:
• Register to Register
• Memory to Register
• Immediate to Register
• Memory to Memory
• Register to Memory
• Immediate to Memory
Two-operand instructions (e.g. MOV and ADD) are usually
three to six bytes long. Memory to memory operations are
provided by a special class of string instructions requiring
one to three bytes. For detailed instruction formats and
encodings refer to the instruction set summary at the end of
this document.
TABLE 2A. DATA TRANSFER INSTRUCTIONS
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
TABLE 2B. ARITHMETIC INSTRUCTIONS
ADDITION
ADD
Add byte or word
ADC
Add byte or word with carry
INC
Increment byte or word by 1
AAA
ASClI 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
ASClI adjust for subtraction
DAS
Decimal adjust for subtraction
MULTIPLICATION
MUL
Multiply byte or word unsigned
lMUL
Integer multiply byte or word
AAM
ASClI adjust for multiply
DIVISION
DlV
Divide byte or word unsigned
lDlV
Integer divide byte or word
AAD
ASClI adjust for division
CBW
Convert byte to word
CWD
Convert word to doubleword
TABLE 2C. STRING INSTRUCTIONS
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
9