beautypg.com

Intel IA-32 User Manual

Page 555

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.