Intel IA-32 User Manual

Page 555

Advertising
background image

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.

Advertising