mirror of
https://github.com/larsbrinkhoff/awesome-cpus
synced 2025-04-16 10:04:37 +03:00
284 lines
21 KiB
Plaintext
284 lines
21 KiB
Plaintext
Appendix A Opcode Map
|
||
|
||
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
|
||
The opcode tables that follow aid in interpreting 80386 object code. Use
|
||
the high-order four bits of the opcode as an index to a row of the opcode
|
||
table; use the low-order four bits as an index to a column of the table. If
|
||
the opcode is 0FH, refer to the two-byte opcode table and use the second
|
||
byte of the opcode to index the rows and columns of that table.
|
||
|
||
|
||
Key to Abbreviations
|
||
|
||
Operands are identified by a two-character code of the form Zz. The first
|
||
character, an uppercase letter, specifies the addressing method; the second
|
||
character, a lowercase letter, specifies the type of operand.
|
||
|
||
|
||
Codes for Addressing Method
|
||
|
||
A Direct address; the instruction has no modR/M byte; the address of the
|
||
operand is encoded in the instruction; no base register, index register,
|
||
or scaling factor can be applied; e.g., far JMP (EA).
|
||
|
||
C The reg field of the modR/M byte selects a control register; e.g., MOV
|
||
(0F20, 0F22).
|
||
|
||
D The reg field of the modR/M byte selects a debug register; e.g., MOV
|
||
(0F21,0F23).
|
||
|
||
E A modR/M byte follows the opcode and specifies the operand. The operand
|
||
is either a general register or a memory address. If it is a memory
|
||
address, the address is computed from a segment register and any of the
|
||
following values: a base register, an index register, a scaling factor,
|
||
a displacement.
|
||
|
||
F Flags Register.
|
||
|
||
G The reg field of the modR/M byte selects a general register; e.g., ADD
|
||
(00).
|
||
|
||
I Immediate data. The value of the operand is encoded in subsequent bytes
|
||
of the instruction.
|
||
|
||
J The instruction contains a relative offset to be added to the
|
||
instruction pointer register; e.g., JMP short, LOOP.
|
||
|
||
M The modR/M byte may refer only to memory; e.g., BOUND, LES, LDS, LSS,
|
||
LFS, LGS.
|
||
|
||
O The instruction has no modR/M byte; the offset of the operand is coded as
|
||
a word or double word (depending on address size attribute) in the
|
||
instruction. No base register, index register, or scaling factor can be
|
||
applied; e.g., MOV (A0-A3).
|
||
|
||
R The mod field of the modR/M byte may refer only to a general register;
|
||
e.g., MOV (0F20-0F24, 0F26).
|
||
|
||
S The reg field of the modR/M byte selects a segment register; e.g., MOV
|
||
(8C,8E).
|
||
|
||
T The reg field of the modR/M byte selects a test register; e.g., MOV
|
||
(0F24,0F26).
|
||
|
||
X Memory addressed by DS:SI; e.g., MOVS, COMPS, OUTS, LODS, SCAS.
|
||
|
||
Y Memory addressed by ES:DI; e.g., MOVS, CMPS, INS, STOS.
|
||
|
||
|
||
Codes for Operant Type
|
||
|
||
a Two one-word operands in memory or two double-word operands in memory,
|
||
depending on operand size attribute (used only by BOUND).
|
||
|
||
b Byte (regardless of operand size attribute)
|
||
|
||
c Byte or word, depending on operand size attribute.
|
||
|
||
d Double word (regardless of operand size attribute)
|
||
|
||
p 32-bit or 48-bit pointer, depending on operand size attribute.
|
||
|
||
s Six-byte pseudo-descriptor
|
||
|
||
v Word or double word, depending on operand size attribute.
|
||
|
||
w Word (regardless of operand size attribute)
|
||
|
||
|
||
Register Codes
|
||
|
||
When an operand is a specific register encoded in the opcode, the register
|
||
is identified by its name; e.g., AX, CL, or ESI. The name of the register
|
||
indicates whether the register is 32-, 16-, or 8-bits wide. A register
|
||
identifier of the form eXX is used when the width of the register depends on
|
||
the operand size attribute; for example, eAX indicates that the AX register
|
||
is used when the operand size attribute is 16 and the EAX register is used
|
||
when the operand size attribute is 32.
|
||
|
||
|
||
One-Byte Opcode Map
|
||
0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||
ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÑÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÍ»
|
||
º ADD ³PUSH ³ POP ³ OR ³ PUSH ³2-byte º
|
||
ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ³ ÃÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄ´ ³ º
|
||
0ºEb,Gb ³Ev,Gv ³Gb,Eb³Gv,Ev ³AL,Ib³ eAX,Iv³ ES ³ ES ³ Eb,Gb³Ev,Gv ³Gb,Eb³ Gv,Ev ³AL,Ib ³eAX,Iv³ CS ³escape º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍ͹
|
||
º ADC ³PUSH ³ POP ³ SBB ³ PUSH ³ POP º
|
||
1ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ³ ÃÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄ´ ³ º
|
||
ºEb,Gb ³Ev,Gv ³Gb,Eb³Gv,Ev ³AL,Ib³ eAX,Iv³ SS ³ SS ³Eb,Gb ³Ev,Gv ³Gb,Eb³ Gv,Ev ³AL,Ib ³eAX,Iv³ DS ³ DS º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍ͹
|
||
º AND ³ SEG ³ ³ SUB ³ SEG ³ º
|
||
2ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ³ DAA ÃÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄ´ ³ DAS º
|
||
ºEb,Gb ³Ev,Gv ³Gb,Eb³Gv,Ev ³AL,Ib³ eAX,Iv³ =ES ³ ³ Eb,Gb³Ev,Gv ³Gb,Eb³ Gv,Ev ³AL,Ib ³eAX,Iv³ =CS ³ º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍ͹
|
||
º XOR ³ SEG ³ ³ CMP ³ SEG ³ º
|
||
3ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ³ AAA ÃÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄ´ ³ AAS º
|
||
ºEb,Gb ³Ev,Gv ³Gb,Eb³Gv,Ev ³AL,Ib³ eAX,Iv³ =SS ³ ³ Eb,Gb³Ev,Gv ³Gb,Eb³ Gv,Ev ³AL,Ib ³eAX,Iv³ =CS ³ º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍ͹
|
||
º INC general register ³ DEC general register º
|
||
4ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÅÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄĶ
|
||
º eAX ³ eCX ³ eDX ³ eBX ³ eSP ³ eBP ³ eSI ³ eDI ³eAX ³ eCX ³ eDX ³ eBX ³ eSP ³ eBP ³ eSI³ eDI º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍ͹
|
||
º PUSH general register ³ POP into general register º
|
||
5ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÅÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄĶ
|
||
º eAX ³ eCX ³ eDX ³eBX ³ eSP³ eBP³ eSI ³ eDI ³eAX ³ eCX ³ eDX ³ eBX ³ eSP ³ eBP ³ eSI ³ eDI º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍ͹
|
||
º ³ ³BOUND³ARPL ³ SEG ³ SEG ³Operand³Address³ PUSH ³IMUL ³PUSH ³IMUL ³ INSB ³INSW/D³ OUTSB³OUTSW/Dº
|
||
6ºPUSHA ³ POPA ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³Gv,Ma³ Ew,Rw³ =FS ³ =GS ³ Size ³ Size ³ Ib ³GvEvIv³ Ib ³GvEvIv ³Yb,DX ³ Yb,DX³ Dx,Xb³ DX,Xv º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍ͹
|
||
º Short displacement jump of condition (Jb) ³ Short-displacement jump on condition(Jb) º
|
||
7ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÅÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄĶ
|
||
º JO ³ JNO ³ JB ³JNB ³ JZ ³ JNZ ³ JBE ³ JNBE ³ JS ³ JNS ³ JP ³ JNP ³ JL ³ JNL ³ JLE ³ JNLE º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍ͹
|
||
ºImmediate Grpl³ ³Grpl ³ TEST ³ XCNG ³ MOV ³ MOV ³ LEA ³MOV ³ POP º
|
||
8ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ³ ÃÄÄÄÄÄÂÄÄÄÄÄÄÄÅÄÄÄÄÄÂÄÄÄÄÄÄÄÅÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ³ ³ ³ º
|
||
ºEb,Ib ³ Ev,Iv ³ ³Ev,Iv ³Eb,Gb³ Ev,Gv ³Eb,Gb³ Ev,Gv³Eb,Gb ³Ev,Gv ³Gb,Eb³ Gv,Ev ³Ew,Sw ³ Gv,M ³Sw,Ew³ Ev º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍ͹
|
||
º ³ XCHG word or double-word register with eAX ³ ³ ³ CALL³ ³PUSHF ³ POPF ³ ³ º
|
||
9º NOP ÃÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄ´ CBW ³ CWD ³ ³ WAIT ³ ³ ³ SAHF³ LAHF º
|
||
º ³ eCX ³ eDX ³ eBX ³ eSP ³ eBP ³ eSI ³ eDI ³ ³ ³ Ap ³ ³ Fv ³ Fv ³ ³ º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍ͹
|
||
º MOV ³MOVSB³MOVSW/D³CMPSB³CMPSW/D³ TEST ³STOSB³STOSW/D³ LODSB³LODSW/D³SCASB³SCASW/Dº
|
||
AÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄ´ ³ ³ ³ ÃÄÄÄÄÄÄÂÄÄÄÄÄÄ´ ³ ³ ³ ³ ³ º
|
||
ºAL,Ob ³eAX,Ov ³Ob,AL³Ov,eAX³Xb,Yb³Xv,Yv ³Xb,Yb³ Xv,Yv ³AL,Ib ³eAX,Iv³Yb,AL³ Yv,eAX³ AL,Xb³ eAX,Xv³AL,Xb³eAX,Xv º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍ͹
|
||
º MOV immediate byte into byte register ³MOV immediate word or duble into word or double registerº
|
||
BÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÅÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄĶ
|
||
º AL ³ CL ³ DL ³ BL ³ AH ³ CH ³ DH ³ BH ³ eAX ³ eCX ³ eDX ³ eBX ³ eSP ³ eBP ³ eSI ³ eDI º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÏÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍ͹
|
||
º Shift Grp2 ³ RET near ³ LES ³ LDS ³ MOV ³ENTER ³ ³ RET far ³ INT ³ INT ³ ³ º
|
||
CÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÅÄÄÄÄÄÂÄÄÄÄÄÄ´ ³ ÃÄÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ³LEAVE ÃÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ³ ³INTO ³ IRET º
|
||
ºEb,Ib ³ Ev,Iv ³ Iw ³ ³Gv,Mp³Gv,Mp ³ Eb,Ib³ Ev,Iv ³Iw,Ib ³ ³ Iw ³ ³ 3 ³ Ib ³ ³ º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍ͹
|
||
º Shift Grp2 ³ ³ ³ ³ ³ º
|
||
DÇÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄ´ AAM ³ AAD ³ ³ XLAT ³ ESC(Escape to coprocessor instruction set) º
|
||
º Eb,1 ³ Ev,1 ³Eb,CL³Ev,CL ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÏÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
|
||
ºLOOPNE³ LOOPE ³LOOP ³ JCXZ ³ IN ³ OUT ³ CALL ³ JNP ³ IN ³ OUT º
|
||
Eº ³ ³ ³ ÃÄÄÄÄÄÂÄÄÄÄÄÄÅÄÄÄÄÄÄÂÄÄÄÄÄÄÄ´ ÃÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÅÄÄÄÄÄÂÄÄÄÄÄÄÅÄÄÄÄÄÄÄÂÄÄÄÄÄÄĶ
|
||
º Jb ³ Jb ³ Jb ³ Jb ³AL,Ib³eAX,Ib³ Ib,AL³Ib,eAX ³ Av ³ Jv ³ Ap ³ Jb ³AL,DX³eAX,DX³ DX,AL ³DX,eAX º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍ͹
|
||
º ³ ³ ³ REP ³ ³ ³ Unary Grp3 ³ ³ ³ ³ ³ ³ ³INC/DEC³Indirctº
|
||
Fº LOCK ³ ³REPNE³ ³ HLT ³ CMC ÃÄÄÄÄÄÄÂÄÄÄÄÄÄÄ´ CLC ³ STC ³ CLI ³ STI ³ CLD ³ STD ³ ³ º
|
||
º ³ ³ ³ REPE ³ ³ ³ Eb ³ Ev ³ ³ ³ ³ ³ ³ ³ Grp4 ³ Grp5 º
|
||
ÈÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍͼ
|
||
|
||
|
||
Two-Byte Opcode Map (first byte is 0FH)
|
||
|
||
|
||
0 1 2 3 4 5 6 7 8 9 A B C D E F
|
||
|
||
ÉÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÑÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÍÑÍÍÍÍÍÑÍÍÍÍÍÍ»
|
||
º ³ ³ LAR ³ LSL ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
0º Grp6 ³Grp7 ³ ³ ³ ³ ³ CLTS³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ Gw,Ew³ Gv,Ew³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
1º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º MOV ³ MOV ³ MOV ³ MOV ³ MOV ³ ³ MOV ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
2º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º Cd,Rd³ Dd,Rd³ Rd,Cd³ Rd,Dd³ Td,Rd³ ³Rd,Td³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
3º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
4º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
5º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
6º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
7º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍØÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍ͹
|
||
º Long-displacement jump on condition (Jv) ³ Long-displacement jump on condition (Jv) º
|
||
8ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÅÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄĶ
|
||
º JO ³ JNO ³ JB ³ JNB ³ JZ ³ JNZ ³ JBE ³ JNBE³ JS ³ JNS ³ JP ³ JNP ³ JL ³ JNL ³ JLE ³JNLE º
|
||
ÌÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º Byte Set on condition (Eb) ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
9ÇÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄ´ SETS³ SETNS³ SETP ³ SETNP³ SETL ³SETNL ³SETLE³SETNLEº
|
||
º SETO ³ SETNO³ SETB ³SETNB ³ SETZ ³ SETNZ³SETBE³SETNBE³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º PUSH ³ POP ³ ³ BT ³ SHLD ³ SHLD³ ³ ³ PUSH ³ POP ³ ³ BTS ³ SHRD ³ SHRD ³ ³ IMUL º
|
||
Aº ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º FS ³ FS ³ ³ Ev,Gv³EvGvIb³EvGvCL³ ³ ³ GS ³ GS ³ ³ Ev,Gv³EvGvIb³EvGvCL³ ³ Gv,Evº
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÏÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÏÍÍÍÍÍ͹
|
||
º ³ ³ LSS ³ BTR ³ LFS ³ LGS ³ MOVZX ³ ³ ³ Grp-8³ BTC ³ BSF ³ BSR ³ MOVSX º
|
||
Bº ³ ³ ³ ³ ³ ÃÄÄÄÄÄÂÄÄÄÄÄ´ ³ ³ ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄĶ
|
||
º ³ ³ Mp ³ Ev,Gv³ Mp ³ Mp ³Gv,Eb³Gv,Ew³ ³ ³ Ev,Ib³ Ev,Gv³Gv,Ev ³ Gv,Ev³Gv,Eb Gv,Ewº
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÑÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
Cº ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
Dº ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
Eº ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÌÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍØÍÍÍÍÍ͹
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
Fº ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
º ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º
|
||
ÈÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÍÏÍÍÍÍÍÏÍÍÍÍÍͼ
|
||
|
||
|
||
Opcodes determined by bits 5,4,3 of modR/M byte:
|
||
|
||
G ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ¿
|
||
r ³ mod ³ nnn ³ R/M ³
|
||
o ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ
|
||
u
|
||
p 000 001 010 011 100 101 110 111
|
||
ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ¿
|
||
1³ ADD ³ OR ³ ADC ³ SBB ³ AND ³ SUB ³ XOR ³ CMP ³
|
||
³ ³ ³ ³ ³ ³ ³ ³ ³
|
||
ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´
|
||
2³ ROL ³ ROR ³ RCL ³ RCR ³ SHL ³ SHR ³ ³ SAR ³
|
||
³ ³ ³ ³ ³ ³ ³ ³ ³
|
||
ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´
|
||
3³ TEST ³ ³ NOT ³ NEG ³ MUL ³ IMUL ³ DIV ³ IDIV ³
|
||
³ Ib/Iv ³ ³ ³ ³AL/eAX ³AL/eAX ³AL/eAX ³AL/eAX ³
|
||
ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´
|
||
4³ INC ³ DEC ³ ³ ³ ³ ³ ³ ³
|
||
³ Eb ³ Eb ³ ³ ³ ³ ³ ³ ³
|
||
ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´
|
||
5³ INC ³ DEC ³ CALL ³ CALL ³ JMP ³ JMP ³ PUSH ³ ³
|
||
³ Ev ³ Ev ³ Ev ³ eP ³ Ev ³ Ep ³ Ev ³ ³
|
||
ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ
|
||
|
||
|
||
Opcodes determined by bits 5,4,3 of modR/M byte:
|
||
|
||
G ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ¿
|
||
r ³ mod ³ nnn ³ R/M ³
|
||
o ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ
|
||
u
|
||
p 000 001 010 011 100 101 110 111
|
||
ÚÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ¿
|
||
6³ SLDT ³ STR ³ LLDT ³ LTR ³ VERR ³ VERW ³ ³ ³
|
||
³ Ew ³ Ew ³ Ew ³ Ew ³ Ew ³ Ew ³ ³ ³
|
||
ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´
|
||
7³ SGDT ³ SIDT ³ LGDT ³ LIDT ³ SMSW ³ ³ LMSW ³ ³
|
||
³ Ms ³ Ms ³ Ms ³ Ms ³ Ew ³ ³ Ew ³ ³
|
||
ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´
|
||
8³ ³ ³ ³ ³ BT ³ BTS ³ BTR ³ BTC ³
|
||
³ ³ ³ ³ ³ ³ ³ ³ ³
|
||
ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ
|