mirror of
https://github.com/larsbrinkhoff/awesome-cpus
synced 2025-04-11 07:46:47 +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