mirror of
https://github.com/larsbrinkhoff/awesome-cpus
synced 2025-04-18 19:12:42 +03:00
Docs for Intel 80386 CPU
This commit is contained in:
parent
df42e92715
commit
573f0d7d00
283
386Intel/386INTEL.APA
Normal file
283
386Intel/386INTEL.APA
Normal file
@ -0,0 +1,283 @@
|
|||||||
|
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 ³
|
||||||
|
³ ³ ³ ³ ³ ³ ³ ³ ³
|
||||||
|
ÀÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ
|
247
386Intel/386INTEL.APB
Normal file
247
386Intel/386INTEL.APB
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
Appendix B Complete Flag Cross-Reference
|
||||||
|
|
||||||
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||||
|
|
||||||
|
Key to Codes
|
||||||
|
|
||||||
|
T = instruction tests flag
|
||||||
|
|
||||||
|
M = instruction modifies flag
|
||||||
|
(either sets or resets depending on operands)
|
||||||
|
|
||||||
|
0 = instruction resets flag
|
||||||
|
|
||||||
|
1 = instruction sets flag
|
||||||
|
|
||||||
|
ÄÄ = instruction's effect on flag is undefined
|
||||||
|
|
||||||
|
R = instruction restores prior value of flag
|
||||||
|
|
||||||
|
blank = instruction does not affect flag
|
||||||
|
|
||||||
|
|
||||||
|
Instruction OF SF ZF AF PF CF TF IF DF NT RF
|
||||||
|
|
||||||
|
AAA ÄÄ ÄÄ ÄÄ TM ÄÄ M
|
||||||
|
AAD ÄÄ M M ÄÄ M ÄÄ
|
||||||
|
AAM ÄÄ M M ÄÄ M ÄÄ
|
||||||
|
AAS ÄÄ ÄÄ ÄÄ TM ÄÄ M
|
||||||
|
ADC M M M M M TM
|
||||||
|
ADD M M M M M M
|
||||||
|
AND 0 M M ÄÄ M 0
|
||||||
|
ARPL M
|
||||||
|
BOUND
|
||||||
|
BSF/BSR ÄÄ ÄÄ M ÄÄ ÄÄ ÄÄ
|
||||||
|
BT/BTS/BTR/BTC ÄÄ ÄÄ ÄÄ ÄÄ ÄÄ M
|
||||||
|
CALL
|
||||||
|
CBW
|
||||||
|
CLC 0
|
||||||
|
CLD 0
|
||||||
|
CLI 0
|
||||||
|
CLTS
|
||||||
|
CMC M
|
||||||
|
CMP M M M M M M
|
||||||
|
CMPS M M M M M M T
|
||||||
|
CWD
|
||||||
|
DAA ÄÄ M M TM M TM
|
||||||
|
DAS ÄÄ M M TM M TM
|
||||||
|
DEC M M M M M
|
||||||
|
DIV ÄÄ ÄÄ ÄÄ ÄÄ ÄÄ ÄÄ
|
||||||
|
ENTER
|
||||||
|
ESC
|
||||||
|
HLT
|
||||||
|
IDIV ÄÄ ÄÄ ÄÄ ÄÄ ÄÄ ÄÄ
|
||||||
|
IMUL M ÄÄ ÄÄ ÄÄ ÄÄ M
|
||||||
|
IN
|
||||||
|
INC M M M M M
|
||||||
|
INS T
|
||||||
|
INT 0 0
|
||||||
|
INTO T 0 0
|
||||||
|
IRET R R R R R R R R R T
|
||||||
|
Jcond T T T T T
|
||||||
|
JCXZ
|
||||||
|
JMP
|
||||||
|
LAHF
|
||||||
|
LAR M
|
||||||
|
LDS/LES/LSS/LFS/LGS
|
||||||
|
LEA
|
||||||
|
LEAVE
|
||||||
|
LGDT/LIDT/LLDT/LMSW
|
||||||
|
LOCK
|
||||||
|
LODS T
|
||||||
|
LOOP
|
||||||
|
LOOPE/LOOPNE T
|
||||||
|
LSL M
|
||||||
|
LTR
|
||||||
|
MOV
|
||||||
|
MOV control, debug ÄÄ ÄÄ ÄÄ ÄÄ ÄÄ ÄÄ
|
||||||
|
MOVS T
|
||||||
|
MOVSX/MOVZX
|
||||||
|
MUL M ÄÄ ÄÄ ÄÄ ÄÄ M
|
||||||
|
NEG M M M M M M
|
||||||
|
NOP
|
||||||
|
NOT
|
||||||
|
OR 0 M M ÄÄ M 0
|
||||||
|
OUT
|
||||||
|
OUTS T
|
||||||
|
POP/POPA
|
||||||
|
POPF R R R R R R R R R R
|
||||||
|
PUSH/PUSHA/PUSHF
|
||||||
|
RCL/RCR 1 M TM
|
||||||
|
RCL/RCR count ÄÄ TM
|
||||||
|
REP/REPE/REPNE
|
||||||
|
RET
|
||||||
|
ROL/ROR 1 M M
|
||||||
|
ROL/ROR count ÄÄ M
|
||||||
|
SAHF R R R R R
|
||||||
|
SAL/SAR/SHL/SHR 1 M M M ÄÄ M M
|
||||||
|
SAL/SAR/SHL/SHR count ÄÄ M M ÄÄ M M
|
||||||
|
SBB M M M M M TM
|
||||||
|
SCAS M M M M M M T
|
||||||
|
SET cond T T T T T
|
||||||
|
SGDT/SIDT/SLDT/SMSW
|
||||||
|
SHLD/SHRD ÄÄ M M ÄÄ M M
|
||||||
|
STC 1
|
||||||
|
STD 1
|
||||||
|
STI 1
|
||||||
|
STOS T
|
||||||
|
STR
|
||||||
|
SUB M M M M M M
|
||||||
|
TEST 0 M M ÄÄ M 0
|
||||||
|
VERR/VERRW M
|
||||||
|
WAIT
|
||||||
|
XCHG
|
||||||
|
XLAT
|
||||||
|
XOR 0 M M ÄÄ M 0
|
||||||
|
|
||||||
|
|
||||||
|
Appendix C Status Flag Summary
|
||||||
|
|
||||||
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||||
|
|
||||||
|
Status Flags' Functions
|
||||||
|
|
||||||
|
Bit Name Function
|
||||||
|
|
||||||
|
0 CF Carry Flag ÄÄ Set on high-order bit carry or borrow; cleared
|
||||||
|
otherwise.
|
||||||
|
2 PF Parity Flag ÄÄ Set if low-order eight bits of result contain
|
||||||
|
an even number of 1 bits; cleared otherwise.
|
||||||
|
4 AF Adjust flag ÄÄ Set on carry from or borrow to the low order
|
||||||
|
four bits of AL; cleared otherwise. Used for decimal
|
||||||
|
arithmetic.
|
||||||
|
6 ZF Zero Flag ÄÄ Set if result is zero; cleared otherwise.
|
||||||
|
7 SF Sign Flag ÄÄ Set equal to high-order bit of result (0 is
|
||||||
|
positive, 1 if negative).
|
||||||
|
11 OF Overflow Flag ÄÄ Set if result is too large a positive number
|
||||||
|
or too small a negative number (excluding sign-bit) to fit in
|
||||||
|
destination operand; cleared otherwise.
|
||||||
|
|
||||||
|
Key to Codes
|
||||||
|
|
||||||
|
T = instruction tests flag
|
||||||
|
M = instruction modifies flag
|
||||||
|
(either sets or resets depending on operands)
|
||||||
|
0 = instruction resets flag
|
||||||
|
ÄÄ = instruction's effect on flag is undefined
|
||||||
|
blank = instruction does not affect flag
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Instruction OF SF ZF AF PF CF
|
||||||
|
AAA ÄÄ ÄÄ ÄÄ TM ÄÄ M
|
||||||
|
AAS ÄÄ ÄÄ ÄÄ TM ÄÄ M
|
||||||
|
AAD ÄÄ M M ÄÄ M ÄÄ
|
||||||
|
AAM ÄÄ M M ÄÄ M ÄÄ
|
||||||
|
DAA ÄÄ M M TM M TM
|
||||||
|
DAS ÄÄ M M TM M TM
|
||||||
|
ADC M M M M M TM
|
||||||
|
ADD M M M M M M
|
||||||
|
SBB M M M M M TM
|
||||||
|
SUB M M M M M M
|
||||||
|
CMP M M M M M M
|
||||||
|
CMPS M M M M M M
|
||||||
|
SCAS M M M M M M
|
||||||
|
NEG M M M M M M
|
||||||
|
DEC M M M M M
|
||||||
|
INC M M M M M
|
||||||
|
IMUL M ÄÄ ÄÄ ÄÄ ÄÄ M
|
||||||
|
MUL M ÄÄ ÄÄ ÄÄ ÄÄ M
|
||||||
|
RCL/RCR 1 M TM
|
||||||
|
RCL/RCR count ÄÄ TM
|
||||||
|
ROL/ROR 1 M M
|
||||||
|
ROL/ROR count ÄÄ M
|
||||||
|
SAL/SAR/SHL/SHR 1 M M M ÄÄ M M
|
||||||
|
SAL/SAR/SHL/SHR count ÄÄ M M ÄÄ M M
|
||||||
|
SHLD/SHRD ÄÄ M M ÄÄ M M
|
||||||
|
BSF/BSR ÄÄ ÄÄ M ÄÄ ÄÄ ÄÄ
|
||||||
|
BT/BTS/BTR/BTC ÄÄ ÄÄ ÄÄ ÄÄ ÄÄ M
|
||||||
|
AND 0 M M ÄÄ M 0
|
||||||
|
OR 0 M M ÄÄ M 0
|
||||||
|
TEST 0 M M ÄÄ M 0
|
||||||
|
XOR 0 M M ÄÄ M 0
|
||||||
|
|
||||||
|
|
||||||
|
Appendix D Condition Codes
|
||||||
|
|
||||||
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||||
|
|
||||||
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||||
|
Note:
|
||||||
|
The terms "above" and "below" refer to the relation between two
|
||||||
|
unsigned values (neither SF nor OF is tested). The terms "greater" and
|
||||||
|
"less" refer to the relation between two signed values (SF and OF are
|
||||||
|
tested).
|
||||||
|
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||||
|
|
||||||
|
Definition of Conditions
|
||||||
|
|
||||||
|
(For conditional instructions Jcond, and SETcond)
|
||||||
|
|
||||||
|
|
||||||
|
Instruction Condition
|
||||||
|
Mnemonic Meaning Subcode Tested
|
||||||
|
|
||||||
|
O Overflow 0000 OF = 1
|
||||||
|
|
||||||
|
NO No overflow 0001 OF = 0
|
||||||
|
|
||||||
|
B Below
|
||||||
|
NAE Neither above nor equal 0010 CF = 1
|
||||||
|
|
||||||
|
NB Not below
|
||||||
|
AE Above or equal 0011 CF = 0
|
||||||
|
|
||||||
|
E Equal
|
||||||
|
Z Zero 0100 ZF = 1
|
||||||
|
|
||||||
|
NE Not equal
|
||||||
|
NZ Not zero 0101 ZF = 0
|
||||||
|
|
||||||
|
BE Below or equal
|
||||||
|
NA Not above 0110 (CF or ZF) = 1
|
||||||
|
|
||||||
|
NBE Neither below nor equal
|
||||||
|
NA Above 0111 (CF or ZF) = 0
|
||||||
|
|
||||||
|
S Sign 1000 SF = 1
|
||||||
|
|
||||||
|
NS No sign 1001 SF = 0
|
||||||
|
|
||||||
|
P Parity
|
||||||
|
PE Parity even 1010 PF = 1
|
||||||
|
|
||||||
|
NP No parity
|
||||||
|
PO Parity odd 1011 PF = 0
|
||||||
|
|
||||||
|
L Less
|
||||||
|
NGE Neither greater nor equal 1100 (SF xor OF) = 1
|
||||||
|
|
||||||
|
NL Not less
|
||||||
|
GE Greater or equal 1101 (SF xor OF) = 0
|
||||||
|
|
||||||
|
LE Less or equal
|
||||||
|
NG Not greater 1110 ((SF xor OF) or ZF) = 1
|
||||||
|
|
||||||
|
NLE Neither less nor equal
|
||||||
|
G Greater 1111 ((SF xor OF) or ZF) = 0
|
10429
386Intel/386INTEL.PT1
Normal file
10429
386Intel/386INTEL.PT1
Normal file
File diff suppressed because it is too large
Load Diff
9919
386Intel/386INTEL.PT2
Normal file
9919
386Intel/386INTEL.PT2
Normal file
File diff suppressed because it is too large
Load Diff
14
386Intel/README.md
Normal file
14
386Intel/README.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
This subfolder contains the documents and other stuff for Intel 80386 family.
|
||||||
|
|
||||||
|
[Main Wikipedia article on this family](https://en.wikipedia.org/wiki/Intel_80386)
|
||||||
|
|
||||||
|
The files were given to me (@The-Blue-Wizard) by my friend a long time ago, and the original source for it is unknown.
|
||||||
|
|
||||||
|
These files are typed in IBM PC ASCII (code 437), so these are best viewed using that character set. See https://en.wikipedia.org/wiki/Code_page_437 for information on that character set.
|
||||||
|
|
||||||
|
| Files | Description |
|
||||||
|
| ----- | ----------- |
|
||||||
|
| 386INTEL.PT1 | Intel 80386 manual, Part 1 |
|
||||||
|
| 386INTEL.PT2 | Intel 80386 manual, Part 2 |
|
||||||
|
| 386INTEL.APA | Intel 80386 manual, Appendix A |
|
||||||
|
| 386INTEL.APB | Intel 80386 manual, Appendix B |
|
Loading…
Reference in New Issue
Block a user