Intel IA-32 User Manual
Page 555
Vol. 3A 15-5
8086 EMULATION
•
Logical instructions AND, OR, XOR, and NOT.
•
Decimal instructions DAA, DAS, AAA, AAS, AAM, and AAD.
•
Stack instructions PUSH and POP (to general-purpose registers and segment registers).
•
Type conversion instructions CWD, CDQ, CBW, and CWDE.
•
Shift and rotate instructions SAL, SHL, SHR, SAR, ROL, ROR, RCL, and RCR.
•
TEST instruction.
•
Control instructions JMP, Jcc, CALL, RET, LOOP, LOOPE, and LOOPNE.
•
Interrupt instructions INT n, INTO, and IRET.
•
EFLAGS control instructions STC, CLC, CMC, CLD, STD, LAHF, SAHF, PUSHF, and
POPF.
•
I/O instructions IN, INS, OUT, and OUTS.
•
Load effective address (LEA) instruction, and translate (XLATB) instruction.
•
LOCK prefix.
•
Repeat prefixes REP, REPE, REPZ, REPNE, and REPNZ.
•
Processor halt (HLT) instruction.
•
No operation (NOP) instruction.
The following instructions, added to later IA-32 processors (some in the Intel 286 processor and
the remainder in the Intel386 processor), can be executed in real-address mode, if backwards
compatibility to the Intel 8086 processor is not required.
•
Move (MOV) instructions that operate on the control and debug registers.
•
Load segment register instructions LSS, LFS, and LGS.
•
Generalized multiply instructions and multiply immediate data.
•
Shift and rotate by immediate counts.
•
Stack instructions PUSHA, PUSHAD, POPA and POPAD, and PUSH immediate data.
•
Move with sign extension instructions MOVSX and MOVZX.
•
Long-displacement Jcc instructions.
•
Exchange instructions CMPXCHG, CMPXCHG8B, and XADD.
•
String instructions MOVS, CMPS, SCAS, LODS, and STOS.
•
Bit test and bit scan instructions BT, BTS, BTR, BTC, BSF, and BSR; the byte-set-on
condition instruction SETcc; and the byte swap (BSWAP) instruction.
•
Double shift instructions SHLD and SHRD.
•
EFLAGS control instructions PUSHF and POPF.