ªþ¿ý¤C¡@x86 CPU OpCode Map


¤Q¤»¦ì¤¸ CPU ªº OpCode Map

¤Q¤»¦ì¤¸ CPU ªº OpCode Map «üªº¬O 8086/8088 CPU ªº OpCode¡A³o±i¡u8086/8088 OpCode Map¡v¬O¦b¤wª¾ 8086/8088 OpCode ªº±¡ªp¤§¤U¡A¥Î¨Ó¬d¾\ 8086/8088 «ü¥Oªº¡F·íµM¡A¤Ï¹L¨Ó¤]¦æ¡A¤]´N¬O¦p­n¤wª¾ 8086/8088 «ü¥O¨Ó¬d¾\¨ä¹ïÀ³ªº OpCode ¤]¥i¥H¡C

³o¨Ç¸ê®Æ¬O¨ú¦Û©ó http://www.mlsite.net/8086/ ºô¯¸¡Aºô¯¸ªº¸ê®Æ¤W»¡©³¤U³o±i 8086 OpCode Map ¬O®Ú¾Ú­^¯Sº¸¤½¥q¥Xª©ªº¡uIntel Architecture Software Developer's Manual Volume 2¡vªºªþ¿ý A §ï½s¦Ó¦¨ªº¡A§R¥h¤F 80286 ¤Î¨ä¥H«áµoªíªº CPU¡C¤p¤ì°¸·Q¡A¹ï©óªì¾ÇªÌ¦Ó¨¥¡A³oºØ²¤Æªº¸ê®Æ¡A¹ï©óªì¾ÇªÌ¬d¾\ 8086/8088 OpCode «D±`¦³À°§U¡C

8086/8088 ¾÷±ñ½Xªº®æ¦¡

8086/8088 ¾÷±ñ½Xªº®æ¦¡¦p¤U¹Ï¡A¹Ï¤¤¨C­Ó¶À¦â®Ø³£¥Nªí¤@­Ó¦ì¤¸²Õ¡A¦ý¬O¦³³\¦h 8086/8088 «ü¥O¤£¤@©w·|¥Î¨ì©Ò¦³¦ì¤¸²Õ¡A¥u¦³ BYTE1 ¬O¥²­nªº¨ä¾l¨Ì»Ý­n¨M©w¡A³Ì¤Ö¤@­Ó¦ì¤¸²Õ¡A³Ì¦h¤»­Ó¦ì¤¸²Õ¡C ²Ä¤@­Ó¦ì¤¸²ÕºÙ¬° BYTE1¡A§ó¦h®É­ÔºÙ¬° OpCode¡A¤¤¤å½Ķ¦¨¾Þ§@½X¡A¦ì©ó¤@¹D«ü¥Oªº¾÷±ñ½X³Ì§C¦ì§}³B¡C¨ä¾l¦ì¤¸²Õ©¹°ª¦ì§}Àx¦s¡C³o­Óªþ¿ý±N¦Cªí»¡©ú¾Þ§@½X»P 8086/8088 «ü¥OªºÃö«Y¡A³o±iªí®æºÙ¬°¡u8086/8088 OpCode Map¡v¡C²Ä¤G­Ó¦ì¤¸²ÕºÙ¬° BYTE2¡A¤]ºÙ¬° RegR/M ¦ì¤¸²Õ¡A¨Ì¾Ú¾Þ§@½X¨M©w¹Bºâ¤¸ªº©Ê½è¡C

¤W¹Ï¨S¦³¥]§t«e¸m½X¡A¨Ò¦p­«½Æ«ü¥O¡B­â¶V°Ï¬qµ¥¡A¦pªG«ü¥O§t¦³«e¸m½Xªº¸Ü¡A¨º»ò¥²¶·©ñ¦bªº OpCode «e­±¡C

8086/8088 OpCode Map ªí®æ¤¤¹ï¹Bºâ¤¸ªº»¡©ú

¥Ñ©ó¡u8086/8088 OpCode Map¡v¤¤¡A¥Î¤F¤j¶qÁY¼g¨Óªí¥Ü¹Bºâ¤¸ªº©Ê½è¡A©Ò¥H¥²¶·¥ý°w¹ï³o¨ÇÁY¼g»¡©ú¡A³o¨ÇÁY¼g¦p¤Uªí¡G

8086/8088 Argument Addressing Codes
A ª½±µ©w§}¡A¦¹«ü¥O¨S¦³ ModR/M ¦ì¤¸²Õ¡A¾Þ§@½X«á±µµÛªº¹Bºâ¤¸´N¬O¦ì§}¡A¦¹¦ì§}¤£§t°ò©³«ü¼Ð¼È¦s¾¹©Î¯Á¤Þ¼È¦s¾¹¡A¾A¥Î©ó 9AH¡B0EAH ªº CALL¡BJMP «ü¥O¡C
E ModR/M ¦ì¤¸²Õ¦b¾Þ§@½X¤§«á¡A¥Ñ ModR/M «ü©w¹Bºâ¤¸¡A¦¹¹Bºâ¤¸¥i¯à¬O³q¥Î¼È¦s¾¹¡A¤]¥i¯à¬O°O¾ÐÅé¦ì§}¡CE ¬O­^¤å effective address ªºÁY¼g¡A·N«ä¬O¦³®Ä¦ì§}¡A¦¹¦ì§}¬O¨Ì¾Ú°Ï¬q¼È¦s¾¹»P¤U­±¦U¶µ­pºâ¦Ó±o¡G°ò©³«ü¼Ð¼È¦s¾¹¡B¯Á¤Þ¼È¦s¾¹¡B­¿²v¤Î°¾²¾¦ì§}¡A¨£²Ä¤Q¤E³¹¥Î¶¡±µ©w§}¦s¨ú°}¦C¡C
G ModR/M ¦ì¤¸²Õ¤¤ªº Reg Äæ¦ì¬O³q¥Î¼È¦s¾¹¡]general purpose register¡A¥]§t AX¡BCX¡BDX¡BBX¡BSP¡BBP¡BSI¡BDI ¤Î¤K¦ì¤¸ªº¼È¦s¾¹¡^¡C
I ¦¹¬°¥ß§Y­È¡]immediate value¡^¡A¥iµø¬°±`¼Æ¡A¦¹¼Æ­È·|³Q½s½X¥B±µ¦b«ü¥Oªº«áÄò¦ì¤¸²Õ¤¤¡C
J ¦¹Ãþ«ü¥O¨S¦³ ModR/M ¦ì¤¸²Õ¡]¥ç§Y¨S¦³ BYTE2¡^¡A¨ä«á±µµÛªº¬O¬Û¹ï¦ì§}¡A¥Nªí©¹«e©Î©¹«áªº¸õÅD¶ZÂ÷¡A¦¹Ãþ«ü¥O¤j¦h«üªº¬O JE¡BJMP¡K¡K©Î LOOP µ¥µ¥
M ¦¹Ãþ«ü¥Oªº ModR/M ¶È«ü°O¾ÐÅé¡A¥Î©ó BOUND¡BLES¡BLDS¡K¡K¡]62H¡B0C4H¡B0C5H¡K¡K¡^¡C
O ¦¹Ãþ«ü¥O¨S¦³ ModR/M ¦ì¤¸²Õ¡A¨ä«á±µµÛªº¬O¥Nªí°O¾ÐÅé¦ì§}ªº¦r²Õ¡A¦¹°O¾ÐÅé¦ì§}¤£¯à¥Î°ò©³«ü¼Ð¼È¦s¾¹¡B¯Á¤Þ¼È¦s¾¹µ¥ªí¥Ü¡C³oºØ«ü¥O±q 0A0H¡ã0A3H¡C
S ModR/M ¦ì¤¸²Õªº Reg Äæ¦ì«üªº¬O°Ï¬q¼È¦s¾¹¡A¾A¥Î©ó 8CH¡B8EH¡CReg Äæ¦ìªº·N¸q¦p¤Uªí¡G
Reg°Ï¬q¼È¦s¾¹Reg°Ï¬q¼È¦s¾¹
000ES001CS
010SS011DS

8086/8088 Argument Operand Codes
0 ¦¹¹Bºâ¤¸¬O¦ì¤¸²Õ¡A¦ý»P¨ä¥L¹Bºâ¤¸¤£¦P¡A·í³oÃþ¹Bºâ¤¸¹w³]­È¬O 10¡]0AH¡^®É¡A¦b²Õ¦X»y¨¥¤£¥²¼g¥X¨Ó¡C³q±`¥Î©ó AAM ©M AAD µ¥«ü¥O¡C
b ¦¹¹Bºâ¤¸¬O¦ì¤¸²Õ¡C
p ¦¹¹Bºâ¤¸¬O 32 ¦ì¤¸ªº¦ì§}¡]¤]¥iµø¬°¦ì§}«ü¼Ð¡^¡A¤]´N¬O¥Î SEGMENT:OFFSET §Î¦¡ªí²{ªº¦ì§}¡C
v ¦¹¹Bºâ¤¸¬O¦r²Õ¡C
w ¦¹¹Bºâ¤¸¬O¦r²Õ¡A¤@­Ó¦r²Õ¥Ñ 16 ­Ó¦ì¤¸²Õ¦¨¡C

8086/8088 OpCode Map

©³¤U¬O 8086/8088 ªº OpCode ¦Cªí¡A³Ì¤W­±¤@¦Cªº ?0¡B?1¡B?2¡K¡K¥Nªí­Ó¦ì¼Æ¡A³Ì¥ªÃä¤@¦æªº 1?¡B2?¡B3?¡K¡K¥Nªí¤Q¦ì¼Æ¡A§¡¥H¤Q¤»¶i¦ìªí¥Ü¡C¨Ò¦p OpCode ¬°¡u02¡v¥Nªí¡uADD Gb,Eb¡v¡AGb »P Eb ¥Nªí¦ó·N¡A­n¬d¾\¡u8086/8088 Argument Addressing Codes¡v¡C

8086/8088 OpCode Map
?0?1?2?3?4?5?6?7 ?8?9?A?B?C?D?E?F
0? ADD
Eb,Gb
ADD
Ev,Gv
ADD
Gb,Eb
ADD
Gv,Ev
ADD
AL,Ib
ADD
AX,Iv
PUSH
ES
POP
ES
OR
Eb,Gb
OR
Ev,Gv
OR
Gb,Eb
OR
Gv,Ev
OR
AL,Ib
OR
AX,Iv
PUSH
CS
1? ADC
Eb,Gb
ADC
Ev,Gv
ADC
Gb,Eb
ADC
Gv,Ev
ADC
AL,Ib
ADC
AX,Iv
PUSH
SS
POP
SS
SBB
Eb,Gb
SBB
Ev,Gv
SBB
Gb,Eb
SBB
Gv,Ev
SBB
AL,Ib
SBB
AX,Iv
PUSH
DS
POP
DS
2? AND
Eb,Gb
AND
Ev,Gv
AND
Gb,Eb
AND
Gv,Ev
AND
AL,Ib
AND
AX,Iv
ES: DAA SUB
Eb,Gb
SUB
Ev,Gv
SUB
Gb,Eb
SUB
Gv,Ev
SUB
AL,Ib
SUB
AX,Iv
CS: DAS
3? XOR
Eb,Gb
XOR
Ev,Gv
XOR
Gb,Eb
XOR
Gv,Ev
XOR
AL,Ib
XOR
AX,Iv
SS: AAA CMP
Eb,Gb
CMP
Ev,Gv
CMP
Gb,Eb
CMP
Gv,Ev
CMP
AL,Ib
CMP
AX,Iv
DS: AAS
4? INC
AX
INC
CX
INC
DX
INC
BX
INC
SP
INC
BP
INC
SI
INC
DI
DEC
AX
DEC
CX
DEC
DX
DEC
BX
DEC
SP
DEC
BP
DEC
SI
DEC
DI
5? PUSH
AX
PUSH
CX
PUSH
DX
PUSH
BX
PUSH
SP
PUSH
BP
PUSH
SI
PUSH
DI
POP
AX
POP
CX
POP
DX
POP
BX
POP
SP
POP
BP
POP
SI
POP
DI
6?

7? JO
Jb
JNO
Jb
JB
Jb
JNB
Jb
JZ
Jb
JNZ
Jb
JBE
Jb
JA
Jb
JS
Jb
JNS
Jb
JPE
Jb
JPO
Jb
JL
Jb
JGE
Jb
JLE
Jb
JG
Jb
8? GRP1
Eb,Ib
GRP1
Ev,Iv
GRP1
Eb,Ib
GRP1
Ev,Ib
TEST
Eb,Gb
TEST
Ev,Gv
XCHG
Eb,Gb
XCHG
Ev,Gv
MOV
Eb,Gb
MOV
Ev,Gv
MOV
Gb,Eb
MOV
Gv,Ev
MOV
Ew,Sw
LEA
Gv,M
MOV
Sw,Ew
POP
Ev
9? NOPXCHG
AX,CX
XCHG
AX,DX
XCHG
AX,BX
XCHG
AX,SP
XCHG
AX,BP
XCHG
AX,SI
XCHG
AX,DI
CBW CWD CALL
Ap
WAIT PUSHF POPF SAHF LAHF
A? MOV
AL,Ob
MOV
AX,Ov
MOV
Ob,AL
MOV
Ov,AX
MOVSB MOVSW CMPSB CMPSW TEST
AL,Ib
TEST
AX,Iv
STOSB STOSW LODSB LODSW SCASB SCASW
B? MOV
AL,Ib
MOV
CL,Ib
MOV
DL,Ib
MOV
BL,Ib
MOV
AH,Ib
MOV
CH,Ib
MOV
DH,Ib
MOV
BH,Ib
MOV
AX,Iv
MOV
CX,Iv
MOV
DX,Iv
MOV
BX,Iv
MOV
SP,Iv
MOV
BP,Iv
MOV
SI,Iv
MOV
DI,Iv
C? RET
Iw
RET LES
Gv,Mp
LDS
Gv,Mp
MOV
Eb,Ib
MOV
Ev,Iv
RETF
Iw
RETF INT
3
INT
Ib
INTO IRET
D? GRP2
Eb,1
GRP2
Ev,1
GRP2
Eb,CL
GRP2
Ev,CL
AAM
I0
AAD
I0
XLAT
E? LOOPNZ
Jb
LOOPZ
Jb
LOOP
Jb
JCXZ
Jb
IN
AL,Ib
IN
AX,Ib
OUT
Ib,AL
OUT
Ib,AX
CALL
Jv
JMP
Jv
JMP
Ap
JMP
Jb
IN
AL,DX
IN
AX,DX
OUT
DX,AL
OUT
DX,AX
F? LOCK REPNZ REPZ HLT CMC GRP3a
Eb
GRP3b
Ev
CLC STC CLI STI CLD STD GRP4
Eb
GRP5
Ev
?0?1?2?3?4?5?6?7 ?8?9?A?B?C?D?E?F

BYTE2 ¥»¬O Mod¡BReg¡BR/M ¤T³¡¤À¡A¦ý¦]¬° OpCode ¤Ó¦hµLªk®e¯Ç¦b¤@­Ó¦ì¤¸²Õ¤¤¡A¦]¦¹¦³³¡¤À«ü¥Oªº¾Þ§@½X©µ¦ù¨ì BYTE2 ªº²Ä 3¡ã5 ¦ì¤¸¡C³o¼Ëªº¸Ü¡ABYTE2 ªº²Ä 3¡ã5 ¦ì¤¸¤£¦A¬O Reg ¡A¦Ó¬O OpCode ªº©µ¦ù¡A¤Wªí¤¤¥H GRP ªí¥Ü¬O¤@¸s«ü¥O¡C¹³³oºØ¾Þ§@½X©µ¦ùªº¨C¤@¸s«ü¥O¡A¨£¤Uªí¡C¤Uªí¤¤³Ì¤W­±¤@¦C¡A¥Nªí BYTE2 ªº²Ä 3¡ã5 ¦ì¤¸¤§¤G¶i¦ì¼Æ­È¡C

8086/8088 OpCode Extensions
GroupOpCodeModR/M bit 3-5
000001010011100101110111
GRP180-83 ADD OR ADC SBB AND SUB XOR CMP
GRP2D0-D3 ROL ROR RCL RCR SHL SHR SAR
GRP3aF6 TEST
Eb,Ib
NOT NEG MUL IMUL DIV IDIV
GRP3bF7 TEST
Ev,Iv
NOT NEG MUL IMUL DIV IDIV
GRP4FE INC DEC
GRP5FF INC DEC CALL CALL
Ep
JMP JMP
Ep
PUSH

ª`·N¨Æ¶µ

¤W­±ªº OpCode Map ¤¤¡A¦³´X¶µ­nª`·Nªº¨Æ±¡¡A¥²¶·µy°µ»¡©ú¡C

  1. ­I´º¬O·t¬õ¦âªº¡]¡@¡^¥Nªí¨S¦³¨Ï¥Î¦Ó«O¯d°_¨Ó¡C
  2. ­I´º¬O·tºñ¦âªº¡]¡@¡^¥Nªí¬O 8087 ¦@¦P³B²z¾¹¡]¤]ºÙ¬°¯BÂI¹Bºâ¾¹¬O floating-point processor unit¡A²ºÙ¬° FPU¡^ªº¾Þ§@½X¡C
  3. ¦b OpCode Map ¤¤ªº 0FH ¦b 8086/8088 ¤¤¨S¦³½s½X¡A©Ò¥H¦b DEBUG ¤¤¡A¦p±N¥¦¤Ï²ÕĶ·|±o¨ì¡uDB 0F¡v¡]©w¸q¤@­Ó¦ì¤¸²Õ¡A¨ä­È¬° 0FH¡^¡C¦p¤U¾Þ§@¡G
    C:\>debug [Enter]
    -e 100 [Enter]
    1710:0100  00.0f [Enter]
    -u 100 [Enter]
    1710:0100 0F            DB      0F
    1710:0101 00B98AFF      ADD     [BX+DI+FF8A],BH
    ¦ý¬O¦b¥¼¨Óªº CPU ùØ¡A0FH ³Q·í°µ¬O¦h¦ì¤¸²Õ¾Þ§@½Xªº°_©l¦ì¤¸²Õ¡C
  4. ¾Þ§@½X 8FH¡B0C6H¡B0C7H ªº Reg ¤T­Ó¦ì¤¸³£­nµ¥©ó 0¡A¨ä¥L­È¬O«Dªkªº¡A¦¹­­¨î¤£»P¨ã¦³¡uE¡v©w§}°Ñ¼Æªº¨ä¥L¾Þ§@½X¦@¨É¡A¨Ã¥B¨S¦³Åã¥Ü¦b OpCode Map ¤¤¡C
  5. ¾Þ§@½X 8DH »P 0C4H¡B0C5H ¨Ì§Ç¬O LEA¡BLES¡BLDS «ü¥O¡A¨ä¨Ó·½¹Bºâ¤¸·N¸q¤£¦P¡A«eªÌ¬OÀò±o°O¾ÐÅé¦ì§}¡A«á¤GªÌ¬O±N 32 ¦ì¤¸ªº°O¾ÐÅ餺®e¸ü¤J°Ï¬q¼È¦s¾¹¤Î¥Øªº¹Bºâ¤¸¤¤¡C¦ý¦bºô¸ô¤W©Ò¬d¨ìªº¤j³¡¤À¸ê®Æ³£°O¬°¡uM¡v¡A¦ýÁÙ¬O¦³¨Ç°Ï§O¡C
  6. OpCode Map ¤¤ªº 40H¡ã5FH¡A³£¬O¤@­Ó¦ì¤¸²Õªº¾÷±ñ½X´N¥Nªí¤@­Ó«ü¥O¡C

¤T¤Q¤G¦ì¤¸ CPU ªº OpCode Map

³oùØ»¡ªº¤T¤Q¤G¦ì¤¸ CPU ¥]§t¤F­^¯Sº¸³c°âªº CPU¡A±q 80386¡B80486 ¨ì Pentium 4¡A¤]¥]§t¶W·L³c°âªº Am386DX ¨ì Athlon XP¡A¬Æ¦ÜÁÙ¦³ Cyrix¡BVIA ³c°âªº CPU¡CÁ`¤§¡A¥]§t¤F©Ò¦³ x86 ®a±Úªº 32 ¦ì¤¸ CPU¡A¦Ó¤£½×¼tµP¡C

¦³§O©ó¤§«e 16 ¦ì¤¸¬[ºcªº 8086/8088 »P 80286¡C­^¯Sº¸¦b³]­p 80386 ªº®É­Ô¡A±N¨ä©w¦ì¬° 32 ¦ì¤¸ªº CPU¡A¥i¥H¦s¨ú 232 ­Ó¤£¦Pªº¦ì§}¡A¼È¦s¾¹ªº¼e«×¤]ÂX¤j¬° 32 ¦ì¤¸¡C¤£¶È¦p¦¹¡A80386 ¤S¼W¥[¤F¤@¨Ç·sªº«ü¥O¡A¨Ã¥B¤S­n¯à©M¤§«eªº 8086¡B80286 ¬Û®e¡C¦¹¥~¡A80386 ÁÙ·s¼W«OÅ@¼Ò¦¡»PµêÀÀ 86 ¼Ò¦¡¡C¦]¦¹¦b³]­p¾Þ§@½X®É¡A¹ê¦b¬O·Ù¶O­W¤ß¡C

32 ¦ì¤¸¾÷±ñ½X®æ¦¡»P¹Bºâ¤¸ªº»¡©ú

¤U¹Ï¬O 32 ¦ì¤¸ªº¾÷±ñ½X®æ¦¡¡A¤À¬°¤»³¡¤À¡A¦U³¡¤À¦WºÙ¥H¯»¬õ¦âªí¥Ü¡C¤U¹Ï¤¤ªº¶À¦â®ØÁöµM¤@¼Ë¤j¡A¦ý¥u¦³ ModR/M »P SIB ¦U¦û¤@­Ó¦ì¤¸²Õ¡A¨ä¾l§¹¥þ¨Ì«ü¥Oªº»Ý­n¦Ó¨M©w¡A¤Ö«h¤£¦s¦b¦h«h¥|­Ó¦ì¤¸²Õ¡C

©³¤Uªºªí®æ¬O¹ï 32 ¦ì¤¸ OpCode Map ªí®æ¤¤¡A¹Bºâ¤¸ªº»¡©ú¡C

32-Bit Argument Addressing Codes
A ª½±µ©w§}¡A¦¹«ü¥O¨S¦³ ModR/M ¦ì¤¸²Õ¡A¾Þ§@½X«á±µµÛªº¹Bºâ¤¸´N¬O¦ì§}¡A¦¹¦ì§}¤£§t°ò©³«ü¼Ð¼È¦s¾¹¡B¯Á¤Þ¼È¦s¾¹©Î­¿²v¡A¦P 8086/8088 ªº A¡C
C ModR/M ¦ì¤¸²Õªº Reg Äæ¦ì¥Nªí±±¨î¼È¦s¾¹¡]CR0¡ãCR4¡A¦@¤­­Ó¡^¡A¥Î©ó 0FH 20H¡B0FH 22H¡C
D ModR/M ¦ì¤¸²Õªº Reg Äæ¦ì¥Nªí°£¿ù¼È¦s¾¹¡]DR0¡ãDR7¡A¦@¤K­Ó¡^¡A¥Î©ó 0FH 21H¡B0FH 23H¡C
E ModR/M ¦ì¤¸²Õ¦b¾Þ§@½X¤§«á¡A¥Ñ ModR/M «ü©w¹Bºâ¤¸¡A¦¹¹Bºâ¤¸¥i¯à¬O³q¥Î¼È¦s¾¹¡A¤]¥i¯à¬O°O¾ÐÅé¦ì§}¡C¦P 8086/8088 ªº E¡C
G ModR/M ¦ì¤¸²Õ¤¤ªº Reg Äæ¦ì¬O³q¥Î¼È¦s¾¹¡A¦P 8086/8088 ªº G¡C
I ¦¹¬°¥ß§Y­È¡]immediate value¡^¡A¥iµø¬°±`¼Æ¡A¦P 8086/8088 ªº I¡C
J ¬Û¹ï¦ì§}¡A¦P 8086/8088 ªº J¡C
M ¦¹Ãþ«ü¥Oªº ModR/M ¶È«ü°O¾ÐÅé¡A¦P 8086/8088 ªº M¡C
O ªø«×¬°¦r²Õ©ÎÂù¦r²Õªº°¾²¾¦ì§}¡A¦¹«ü¥O¨S¦³ ModR/M ¦ì¤¸²Õ¡A¾Þ§@½X«á±µµÛªº¹Bºâ¤¸´N¬O¦ì§}¡A¦¹¦ì§}¤£§t°ò©³«ü¼Ð¼È¦s¾¹©Î¯Á¤Þ¼È¦s¾¹¡A¾A¥Î©ó 0A0¡ã0A3H ªº MOV «ü¥O¡C
R ModR/M ªº Mod Äæ¦ì¶È¶È¬O¥Nªí³q¥Î¼È¦s¾¹¡A¾A¥Î©ó 0FH 20H¡ã0FH 24H¡B0FH 26H¡C
S ModR/M ªº Reg Äæ¦ì«üªº¬O°Ï¬q¼È¦s¾¹¡A¦P 8086/8088 ªº S¡A¦ý¦h¥X Reg¡×100 ®É¡A¥Nªí FS¡FReg¡×101 ®É¡A¥Nªí GS¡C
T ModR/M ¦ì¤¸²Õªº Reg Äæ¦ì¥Nªí°»´ú¼È¦s¾¹¡A¾A¥Î©ó 0FH 24H¡B0FH 26H¡C

32-Bit Argument Operand Codes
a ¦s©ó°O¾ÐÅ餤¡A¨â­Ó¦r²Õªø©Î¨â­ÓÂù¦r²Õªøªº¹Bºâ¤¸¡A¶È¥Î©ó 62H¡C
b ¦¹¹Bºâ¤¸¬O¦ì¤¸²Õ¡C
d ¦¹¹Bºâ¤¸¬OÂù¦r²Õ¡C
e ¦¹¹Bºâ¤¸¬O 16 ¦ì¤¸©Î 32 ¦ì¤¸ªº¼È¦s¾¹¡C¨Ò¦p eAX ¦pªG¥Nªí 16 ¦ì¤¸´N¬O AX¡F¦pªG¬° 32 ¦ì¤¸´N¬O EAX¡C
p ¦¹¹Bºâ¤¸¬O 32 ¦ì¤¸©Î 48 ¦ì¤¸ªº¦ì§}¡]¤]¥iµø¬°¦ì§}«ü¼Ð¡^¡C°Ñ¦Ò 8086/8088 ªº p¡C
q ¦¹¹Bºâ¤¸¬O¥|¦r²Õ¡C
s ¤»­Ó¦ì¤¸²ÕªºµêÀÀ°Ï¬q´y­z¾¹¡A¶È¥Î©ó SGDI¡BSIDT¡BLGDT¡BLIDT¡C
v ¦r²Õ©ÎÂù¦r²Õ¡A»P 8086/8088 ªº v ¤£¤Ó¤@¼Ë¡C
w ¦¹¹Bºâ¤¸¬O¦r²Õ¡C

©³¤Uªº OpCode Map ¤¤¡A¦³´X¶µ­nª`·Nªº¨Æ±¡¡A¥²¶·µy°µ»¡©ú¡C

  1. ­I´º¬O·t¬õ¦âªº¡]¡@¡^¥Nªí¨S¦³¨Ï¥Î¦Ó«O¯d°_¨Ó¡C
  2. ­I´º¬O·tºñ¦âªº¡]¡@¡^¥Nªí¬O 8087 ¦@¦P³B²z¾¹¡]¤]ºÙ¬°¯BÂI¹Bºâ¾¹¬O floating-point processor unit¡A²ºÙ¬° FPU¡^ªº¾Þ§@½X¡C
  3. ­I´º¬OÂŦ⪺¡]¡@¡^¥Nªí SSE «ü¥O¡C
32-Bit OpCode Map
One-byte OpCode Map
?0?1?2?3?4?5?6?7 ?8?9?A?B?C?D?E?F
0? ADD
Eb,Gb
ADD
Ev,Gv
ADD
Gb,Eb
ADD
Gv,Ev
ADD
AL,Ib
ADD
eAX,Iv
PUSH
ES
POP
ES
OR
Eb,Gb
OR
Ev,Gv
OR
Gb,Eb
OR
Gv,Ev
OR
AL,Ib
OR
eAX,Iv
PUSH
CS
2-Byte
Esc
1? ADC
Eb,Gb
ADC
Ev,Gv
ADC
Gb,Eb
ADC
Gv,Ev
ADC
AL,Ib
ADC
eAX,Iv
PUSH
SS
POP
SS
SBB
Eb,Gb
SBB
Ev,Gv
SBB
Gb,Eb
SBB
Gv,Ev
SBB
AL,Ib
SBB
eAX,Iv
PUSH
DS
POP
DS
2? AND
Eb,Gb
AND
Ev,Gv
AND
Gb,Eb
AND
Gv,Ev
AND
AL,Ib
AND
eAX,Iv
ES: DAA SUB
Eb,Gb
SUB
Ev,Gv
SUB
Gb,Eb
SUB
Gv,Ev
SUB
AL,Ib
SUB
eAX,Iv
CS: DAS
3? XOR
Eb,Gb
XOR
Ev,Gv
XOR
Gb,Eb
XOR
Gv,Ev
XOR
AL,Ib
XOR
eAX,Iv
SS: AAA CMP
Eb,Gb
CMP
Ev,Gv
CMP
Gb,Eb
CMP
Gv,Ev
CMP
AL,Ib
CMP
eAX,Iv
DS: AAS
4? INC
eAX
INC
eCX
INC
eDX
INC
eBX
INC
eSP
INC
eBP
INC
eSI
INC
eDI
DEC
eAX
DEC
eCX
DEC
eDX
DEC
eBX
DEC
eSP
DEC
eBP
DEC
eSI
DEC
eDI
5? PUSH
eAX
PUSH
eCX
PUSH
eDX
PUSH
eBX
PUSH
eSP
PUSH
eBP
PUSH
eSI
PUSH
eDI
POP
eAX
POP
eCX
POP
eDX
POP
eBX
POP
eSP
POP
eBP
POP
eSI
POP
eDI
6? PUSHA/
PUSHAD
POPA/
POPAD
BOUND
Gv,Ma
ARPL
Ew,Gw
FS:GS:Opd
Size
Addr
Size
PUSH
Iv
IMUL
Gv,Ev,Iv
PUSH
Ib
IMUL
Gv,Ev,Iv
INSBINSW/
INSD
OUTSBOUTSW/
OUTSD
7? JO
Jb
JNO
Jb
JB
Jb
JNB
Jb
JZ
Jb
JNZ
Jb
JBE
Jb
JA
Jb
JS
Jb
JNS
Jb
JPE
Jb
JPO
Jb
JL
Jb
JGE
Jb
JLE
Jb
JG
Jb
8? GRP1
Eb,Ib
GRP1
Ev,Iv
GRP1
Eb,Ib
GRP1
Ev,Ib
TEST
Eb,Gb
TEST
Ev,Gv
XCHG
Eb,Gb
XCHG
Ev,Gv
MOV
Eb,Gb
MOV
Ev,Gv
MOV
Gb,Eb
MOV
Gv,Ev
MOV
Ew,Sw
LEA
Gv,M
MOV
Sw,Ew
POP
Ev
9? NOPXCHG
eAX,eCX
XCHG
eAX,eDX
XCHG
eAX,eBX
XCHG
eAX,eSP
XCHG
eAX,eBP
XCHG
eAX,eSI
XCHG
eAX,eDI
CBW/
CWDE
CWD/
CDQ
CALLF
Ap
WAIT PUSHF/
PUSHFD
POPF/
POPFD
SAHFLAHF
A? MOV
AL,Ob
MOV
eAX,Ov
MOV
Ob,AL
MOV
Ov,eAX
MOVSBMOVSW/
MOVSD
CMPSBCMPSW/
CMPSD
TEST
AL,Ib
TEST
eAX,Iv
STOSBSTOSW/
STOSD
LODSBLODSW/
LODSD
SCASBSCASW/
SCASD
B? MOV
AL,Ib
MOV
CL,Ib
MOV
DL,Ib
MOV
BL,Ib
MOV
AH,Ib
MOV
CH,Ib
MOV
DH,Ib
MOV
BH,Ib
MOV
eAX,Iv
MOV
eCX,Iv
MOV
eDX,Iv
MOV
eBX,Iv
MOV
eSP,Iv
MOV
eBP,Iv
MOV
eSI,Iv
MOV
eDI,Iv
C? GRP2
Eb,Ib
GRP2
Ev,Ib
RET
Iw
RET LES
Gv,Mp
LDS
Gv,Mp
GRP11a
Eb,Ib
GRP11b
Ev,Iv
ENTER
Iw,Ib
LEAVERETF
Iw
RETFINT
3
INT
Ib
INTOIRET
D? GRP2
Eb,1
GRP2
Ev,1
GRP2
Eb,CL
GRP2
Ev,CL
AAM
Ib
AAD
Ib
XLAT
E? LOOPNZ
Jb
LOOPZ
Jb
LOOP
Jb
JCXZ
Jb
IN
AL,Ib
IN
eAX,Ib
OUT
Ib,AL
OUT
Ib,eAX
CALL
Jv
JMP
Jv
JMP
Ap
JMP
Jb
IN
AL,DX
IN
eAX,DX
OUT
DX,AL
OUT
DX,eAX
F? LOCKREPNZREPZHLT CMCGRP3a
Eb
GRP3b
Ev
CLCSTCCLI STICLDSTDGRP4
Eb
GRP5
Ev

¦³¨Ç OpCode ¨ã¦³¨â­Ó¦ì¤¸²Õ¡A³oºØ±¡§Î®É²Ä¤@­Ó¦ì¤¸²Õ¬O 0F0H¡C¤Uªí¶È¦C¥X OpCode ªº²Ä¤G­Ó¦ì¤¸²Õ»P«ü¥OªºÃö«Y¡G

32-Bit OpCode Map
Two-byte Opcode Map ( First Byte is 0FH )
?0?1?2?3?4?5?6?7 ?8?9?A?B?C?D?E?F
0? GRP6GRP7 LAR
Gv,Ew
LSL
Gv,Ew
CLTS INVDWBINVDUD2
1?
2? MOV
Rd,Cd
MOV
Rd,Dd
MOV
Cd,Rd
MOV
Dd,Rd
MOV
Rd,Td
MOV
Td,Rd
3? WRMSRRDTSCRDMSRRDPMCSYSENTERSYSEXIT
4? CMOVO
Gv,Ev
CMOVNO
Gv,Ev
CMOVB
Gv,Ev
CMOVNB
Gv,Ev
CMOVZ
Gv,Ev
CMOVNZ
Gv,Ev
CMOVBE
Gv,Ev
CMOVA
Gv,Ev
CMOVS
Gv,Ev
CMOVNS
Gv,Ev
CMOVPE
Gv,Ev
CMOVPO
Gv,Ev
CMOVL
Gv,Ev
CMOVGE
Gv,Ev
CMOVLE
Gv,Ev
CMOVG
Gv,Ev
5?
6?
7? GRP12 GRP13 GRP14
8? JO
Jv
JNO
Jv
JB
Jv
JNB
Jv
JZ
Jv
JNZ
Jv
JBE
Jv
JA
Jv
JS
Jv
JNS
Jv
JPE
Jv
JPO
Jv
JL
Jv
JGE
Jv
JLE
Jv
JG
Jv
9? SETO
Eb
SETNO
Eb
SETB
Eb
SETNB
Eb
SETZ
Eb
SETNZ
Eb
SETBE
Eb
SETA
Eb
SETS
Eb
SETNS
Eb
SETPE
Eb
SETPO
Eb
SETL
Eb
SETGE
Eb
SETLE
Eb
SETG
Eb
A? PUSH
FS
POP
FS
CPUID BT
Ev,Gv
SHLD
Ev,Gv,Ib
SHLD
Ev,Gv,CL
PUSH
GS
POP
GS
RSM BTS
Ev,Gv
SHRD
Ev,Gv,Ib
SHRD
Ev,Gv,CL
GRP15IMUL
Gv,Ev
B? CMPXCHG
Eb,Gb
CMPXCHG
Ev,Gv
LSS
Gv,Mp
BTR
Ev,Gv
LFS
Gv,Mp
LGS
Gv,Mp
MOVZX
Gv,Eb
MOVZX
Gv,Ew
GRP10 GRP8
Ev,Ib
BTC
Ev,Gv
BSF
Gv,Ev
BSR
Gv,Ev
MOVSX
Gv,Eb
MOVSX
Gv,Ew
C? XADD
Eb,Gb
XADD
Ev,Gv
MOVNTI
Ed,Gd
GRP9 BSWAP
EAX
BSWAP
ECX
BSWAP
EDX
BSWAP
EBX
BSWAP
ESP
BSWAP
EBP
BSWAP
ESI
BSWAP
EDI
D?
E?
F?
?0?1?2?3?4?5?6?7 ?8?9?A?B?C?D?E?F

¸ò 8086/8088 ¤@¼Ë¡A¦b 32 ¦ì¤¸ªº ModR/M ¸Ì­±¡A¦³®É·|§â¨ä¤¤ªº²Ä 3¡ã5 ­Ó¦ì¤¸·í°µ OpCode ªº©µ¦ù¡A¦Ó¥B¤ñ 8086/8088 ¦h±o¦h¡A³o¨Ç©µ¦ùªº OpCode ¦C¦b¤Uªí¡G

32-Bit OpCode Extensions
GRPOpCodeModR/M bit 3-5
000001010011100101110111
GRP180-83 ADDORADCSBBANDSUBXORCMP
GRP2D0-D3 ROLRORRCLRCRSHLSHRSAR
GRP3aF6 TEST
Eb,Ib
NOTNEGMULIMULDIVIDIV
GRP3bF7 TEST
Ev,Iv
NOTNEGMULIMULDIVIDIV
GRP4FE INCDEC
GRP5FF INCDECCALLCALL
Ep
JMP JMP
Ep
PUSH
GRP60F 00 SLDT
Ew
STR
Ev
LLDT
Ew
LTR
Ew
VERR
Ew
VERW
Ew
GRP70F 01 SGDT
Ms
SIDT
Ms
LGDT
Ms
LIDT
Ms
SMSW
Ew
LMSW
Ew
INVLPG
Mb
GRP80F BA BTBTSBTRBTC
GRP90F C7 CMPXCH8B
Mq
GRP100F B9
GRP11aC6 MOV
Eb,Ib
GRP11bC7 MOV
Ev,Iv
GRP120F 71
GRP130F 72
GRP140F 73
GRP150F AE CLFLUSH
GRP160F 18

¤»¤Q¥|¦ì¤¸ CPU ªº OpCode Map

CPU ¶i¨B¨ì¤F 64 ¦ì¤¸ªº®É¥N¡A¥\¯à§ó±j¤j¤F¡AIA¡Ð32 ªº«áÄòªÌºÙ¬° x86¡Ð64 ©Î²ºÙ x64¡Cx64 ¸ò IA¡Ð32 ¤ñ¸û¡A¤£¶È¶È¬O¦ì¤¸¼ÆÅܦ¨¤F 64 ¦ì¤¸¡A¥i¥H¨Ï¥Îªº¼È¦s¾¹¤]Åܦh¤F¡AÅܦ¨ 16 ­Ó¡A¼È¦s¾¹¤]³£Åܦ¨¤F 64 ¦ì¤¸¡C¬°¤F¬Û®e¥H©¹ªº CPU¡Ax64 ¦³³\¦hºØ¾Þ§@¼Ò¦¡¡A¥H¤U©Ò½Íªº³£¬O°w¹ï¤»¤Q¥|¦ì¤¸¼Ò¦¡¡]64-bit mode¡^¡A¦b³oºØ¼Ò¦¡¤U¡ACPU ¯àµo´§³Ì±j¤jªº¥\¯à¡C

x64 ¾÷±ñ½X®æ¦¡»P¹Bºâ¤¸ªº»¡©ú

x64 ªº¾÷±ñ½X®æ¦¡¦p¤U¹Ï¡C±q¤U¹Ï¥i¥H¬Ý¥X¨Ó¡Ax64 ªº¾÷±ñ½X¥i¤À¬°¤C³¡¤À¡A¦b¤@¹D«ü¥O¤¤ªº¾÷±ñ½X¡A³o¤C³¡¤À¨Ã«D³£·|¦s¦b¡A§¹¥þ¨Ì¾Ú«ü¥O©Ò»Ý¨M©w¡C­Y¦³¬Y³¡¤À¤£¦s¦b¡A¨º»ò´N·|ªÅ¤U¨Ó¡C

©³¤Uªºªí®æ¬O¹ï¤»¤Q¥|¦ì¤¸¼Ò¦¡¤U¡AOpCode Map ªí®æ¤¤¡A¹Bºâ¤¸ªº»¡©ú¡C

64-Bit Argument Addressing Codes
A ª½±µ©w§}¡A¦¹«ü¥O¨S¦³ ModR/M ¦ì¤¸²Õ¡A¾Þ§@½X«á±µµÛªº¹Bºâ¤¸´N¬O¦ì§}¡A¦¹¦ì§}¤£§t°ò©³«ü¼Ð¼È¦s¾¹¡B¯Á¤Þ¼È¦s¾¹©Î­¿²v¡A¦P 32 ¦ì¤¸ªº A¤Î 16 ¦ì¤¸ªº A¡C
C ModR/M ¦ì¤¸²Õªº Reg Äæ¦ì¥Nªí±±¨î¼È¦s¾¹¡]CR0¡ãCR4¡A¦@¤­­Ó¡^¡A¥Î©ó 0FH 20H¡B0FH 22H¡C¦P 32 ¦ì¤¸ªº C¤Î 16 ¦ì¤¸ªº C¡C
D ModR/M ¦ì¤¸²Õªº Reg Äæ¦ì¥Nªí°£¿ù¼È¦s¾¹¡]DR0¡ãDR7¡A¦@¤K­Ó¡^¡A¥Î©ó 0FH 21H¡B0FH 23H¡C¦P 32 ¦ì¤¸ªº D¤Î 16 ¦ì¤¸ªº D¡C
E ModR/M ¦ì¤¸²Õ¦b¾Þ§@½X¤§«á¡A¥Ñ ModR/M «ü©w¹Bºâ¤¸¡A¦¹¹Bºâ¤¸¥i¯à¬O³q¥Î¼È¦s¾¹¡A¤]¥i¯à¬O°O¾ÐÅé¦ì§}¡C¦P 32 ¦ì¤¸ªº E¤Î 16 ¦ì¤¸ªº E¡C
G ModR/M ¦ì¤¸²Õ¤¤ªº Reg Äæ¦ì¬O³q¥Î¼È¦s¾¹¡A¦P 32 ¦ì¤¸ªº G¤Î 16 ¦ì¤¸ªº G¡C
I ¦¹¬°¥ß§Y­È¡]immediate value¡^¡A¥iµø¬°±`¼Æ¡A¦P 32 ¦ì¤¸ªº I¤Î 16 ¦ì¤¸ªº I¡C
J ¬Û¹ï¦ì§}¡A¦P 32 ¦ì¤¸ªº J¤Î 16 ¦ì¤¸ªº J¡C
M ¦¹Ãþ«ü¥Oªº ModR/M ¶È«ü°O¾ÐÅé¡A¥Î©ó LEA¡BLSS¡BLFS¡B¡K¡K¡]08DH¡B0FH 0B2H¡B0FH 0B4H¡B¡K¡K¡^¡AÃþ¦ü 32 ¦ì¤¸ªº M¤Î 16 ¦ì¤¸ªº M¡C
O ªø«×¬°¥|¦r²Õ©ÎÂù¦r²Õªº°¾²¾¦ì§}¡A¦¹«ü¥O¨S¦³ ModR/M ¦ì¤¸²Õ¡A¾Þ§@½X«á±µµÛªº¹Bºâ¤¸´N¬O¦ì§}¡A¦¹¦ì§}¤£§t°ò©³«ü¼Ð¼È¦s¾¹©Î¯Á¤Þ¼È¦s¾¹¡A¾A¥Î©ó 0A0¡ã0A3H ªº MOV «ü¥O¡AÃþ¦ü 32 ¦ì¤¸ªº O¤Î 16 ¦ì¤¸ªº O¡C
R ModR/M ªº Mod Äæ¦ì¶È¶È¬O¥Nªí³q¥Î¼È¦s¾¹¡A¾A¥Î©ó 0FH 20H¡ã0FH 23H¡C¦P 32 ¦ì¤¸ªº R¡C
S ModR/M ªº Reg Äæ¦ì«üªº¬O°Ï¬q¼È¦s¾¹¡A¥Î©ó 8CH¡B8EH¡A¦P 32 ¦ì¤¸ªº S¤Î 16 ¦ì¤¸ªº S¡C

64-Bit Argument Operand Codes
a ¦s©ó°O¾ÐÅ餤¡A¨â­Ó¦r²Õªø©Î¨â­ÓÂù¦r²Õªøªº¹Bºâ¤¸¡A¶È¥Î©ó 62H¡C
b ¦¹¹Bºâ¤¸¬O¦ì¤¸²Õ¡C
d ¦¹¹Bºâ¤¸¬OÂù¦r²Õ¡C
dq ¦¹¹Bºâ¤¸¬O¨â­Ó¥|¦r²Õ¡A¤]´N¬O 16 ­Ó¦ì¤¸²Õ¡A¥Î©ó GRP9 ªº CMPXCH8B¡BCMPXCH16B¡C
p ¦¹¹Bºâ¤¸¬O 32 ¦ì¤¸¡B48 ¦ì¤¸©Î 80 ¦ì¤¸ªº¦ì§}¡]¤]¥iµø¬°¦ì§}«ü¼Ð¡^¡C°Ñ¦Ò 8086/8088 ªº p¡C
q ¦¹¹Bºâ¤¸¬O¥|¦r²Õ¡C
r ¦¹¹Bºâ¤¸¬O 16 ¦ì¤¸¡B 32 ¦ì¤¸©Î 64 ¦ì¤¸ªº¼È¦s¾¹¡C¨Ò¦p rAX ¦pªG¥Nªí 16 ¦ì¤¸´N¬O AX¡F¦pªG¬O 32 ¦ì¤¸´N¬O EAX¡F¦pªG¬O 64 ¦ì¤¸´N¬O RAX¡C
s ¤»­Ó©Î¤Q­Ó¦ì¤¸²ÕªºµêÀÀ°Ï¬q´y­z¾¹¡A¶È¥Î©ó SGDI¡BSIDT¡BLGDT¡BLIDT¡C
v ¦r²Õ¡BÂù¦r²Õ©Î¥|¦r²Õ¡]¤»¤Q¥|¦ì¤¸¼Ò¦¡¡^¡A»P 16 ¦ì¤¸ªº v ¤Î 32 ¦ì¤¸ªº v ¤£¤Ó¤@¼Ë¡C
w ¦¹¹Bºâ¤¸¬O¦r²Õ¡C
y ¦¹¹Bºâ¤¸¬OÂù¦r²Õ©Î¥|¦r²Õ¡]¤»¤Q¥|¦ì¤¸¼Ò¦¡¡^¡C
z ¹Bºâ¤¸¤j¤p¬° 16 ¦ì¤¸®É¡Az ªí¥Ü¦r²Õ¡F¹Bºâ¤¸¤j¤p¬° 32 ¦ì¤¸©Î 64 ¦ì¤¸®É¡Az ªí¥ÜÂù¦r²Õ¡C

©³¤Uªº OpCode Map ¤¤¡A¦³´X¶µ­nª`·Nªº¨Æ±¡¡A¥²¶·µy°µ»¡©ú¡C

  1. ­I´º¬O·t¬õ¦âªº¡]¡@¡^¥Nªí¨S¦³¨Ï¥Î¦Ó«O¯d°_¨Ó¡C
  2. ­I´º¬O·tºñ¦âªº¡]¡@¡^¥Nªí¬O x87 ¦@¦P³B²z¾¹¡]¤]ºÙ¬°¯BÂI¹Bºâ¾¹¬O floating-point processor unit¡A²ºÙ¬° FPU¡^ªº¾Þ§@½X¡C
  3. ­I´º¬OÂŦ⪺¡]¡@¡^¥Nªí SSE¡BVEX ©Î¨ä¥L¦h´CÅé¡B¦V¶q«ü¥O¡C
  4. ­I´º¬O·t¾í¦âªº¡]¡@¡^¥Nªí¦b¤»¤Q¥|¦ì¤¸¼Ò¦¡¤U¤£¯à¨Ï¥Î¡C
64-Bit OpCode Map
One-byte OpCode Map
?0?1?2?3?4?5?6?7 ?8?9?A?B?C?D?E?F
0? ADD
Eb,Gb
ADD
Ev,Gv
ADD
Gb,Eb
ADD
Gv,Ev
ADD
AL,Ib
ADD
rAX,Iz
PUSH
ES
POP
ES
OR
Eb,Gb
OR
Ev,Gv
OR
Gb,Eb
OR
Gv,Ev
OR
AL,Ib
OR
rAX,Iz
PUSH
CS
2-Byte
Esc
1? ADC
Eb,Gb
ADC
Ev,Gv
ADC
Gb,Eb
ADC
Gv,Ev
ADC
AL,Ib
ADC
rAX,Iz
PUSH
SS
POP
SS
SBB
Eb,Gb
SBB
Ev,Gv
SBB
Gb,Eb
SBB
Gv,Ev
SBB
AL,Ib
SBB
rAX,Iz
PUSH
DS
POP
DS
2? AND
Eb,Gb
AND
Ev,Gv
AND
Gb,Eb
AND
Gv,Ev
AND
AL,Ib
AND
rAX,Iz
ES: DAA SUB
Eb,Gb
SUB
Ev,Gv
SUB
Gb,Eb
SUB
Gv,Ev
SUB
AL,Ib
SUB
rAX,Iz
CS: DAS
3? XOR
Eb,Gb
XOR
Ev,Gv
XOR
Gb,Eb
XOR
Gv,Ev
XOR
AL,Ib
XOR
rAX,Iz
SS: AAA CMP
Eb,Gb
CMP
Ev,Gv
CMP
Gb,Eb
CMP
Gv,Ev
CMP
AL,Ib
CMP
rAX,Iz
DS: AAS
4? REXREXREXREXREXREXREXREX REXREXREXREXREXREXREXREX
5? PUSH
rAX/r8
PUSH
rCX/r9
PUSH
rDX/r10
PUSH
rBX/r11
PUSH
rSP/r12
PUSH
rBP/r13
PUSH
rSI/r14
PUSH
rDI/r15
POP
rAX/r8
POP
rCX/r9
POP
rDX/r10
POP
rBX/r11
POP
rSP/r12
POP
rBP/r13
POP
rSI/r14
POP
rDI/r15
6? PUSHA/
PUSHAD
POPA/
POPAD
BOUND
Gv,Ma
MOVSXD
Gv,Ev
FS:GS:Opd
Size
Addr
Size
PUSH
Iz
IMUL
Gv,Ev,Iz
PUSH
Ib
IMUL
Gv,Ev,Ib
INSBINSW/
INSD
OUTSBOUTSW/
OUTSD
7? JO
Jb
JNO
Jb
JB
Jb
JNB
Jb
JZ
Jb
JNZ
Jb
JBE
Jb
JA
Jb
JS
Jb
JNS
Jb
JPE
Jb
JPO
Jb
JL
Jb
JGE
Jb
JLE
Jb
JG
Jb
8? GRP1
Eb,Ib
GRP1
Ev,Iv
GRP1
Eb,Ib
GRP1
Ev,Ib
TEST
Eb,Gb
TEST
Ev,Gv
XCHG
Eb,Gb
XCHG
Ev,Gv
MOV
Eb,Gb
MOV
Ev,Gv
MOV
Gb,Eb
MOV
Gv,Ev
MOV
Ev,Sw
LEA
Gv,M
MOV
Sw,Ew
POP
Ev
9? NOP/
XCHG
rAX,r8
XCHG
rAX,
rCX/r9
XCHG
rAX,
rDX/r10
XCHG
rAX,
rBX/r11
XCHG
rAX,
rSP/r12
XCHG
rAX,
rBP/r13
XCHG
rAX,
rSI/r14
XCHG
rAX,
rDI/r15
CBW/
CWDE/
CDQE
CWD/
CDQ/
CQO
CALLF
Ap
WAIT PUSHF/
PUSHFD/
PUSHFQ
POPF/
POPFD/
POPFQ
SAHFLAHF
A? MOV
AL,Ob
MOV
rAX,Ov
MOV
Ob,AL
MOV
Ov,rAX
MOVSBMOVSW/
D/Q
CMPSBCMPSW/
D/Q
TEST
AL,Ib
TEST
rAX,Iz
STOSBSTOSW/
D/Q
LODSBLODSW/
D/Q
SCASBSCASW/
D/Q
B? MOV
AL/R8B
,Ib
MOV
CL/R9B
,Ib
MOV
DL/R10B
,Ib
MOV
BL/R11B
,Ib
MOV
AH/R12B
,Ib
MOV
CH/R13B
,Ib
MOV
DH/R14B
,Ib
MOV
BH/R15B
,Ib
MOV
rAX/r8
,Iv
MOV
rCX/r9
,Iv
MOV
rDX/r10
,Iv
MOV
rBX/r11
,Iv
MOV
rSP/r12
,Iv
MOV
rBP/r13
,Iv
MOV
rSI/r14
,Iv
MOV
rDI/r15
,Iv
C? GRP2
Eb,Ib
GRP2
Ev,Ib
RET
Iw
RETVEX
+2byte
VEX
+1byte
GRP11a
Eb,Ib
GRP11b
Ev,Iv
ENTER
Iw,Ib
LEAVERETF
Iw
RETFINT
3
INT
Ib
INTOIRET/
D/Q
D? GRP2
Eb,1
GRP2
Ev,1
GRP2
Eb,CL
GRP2
Ev,CL
AAM
Ib
AAD
Ib
XLAT
E? LOOPNZ
Jb
LOOPZ
Jb
LOOP
Jb
JCXZ
Jb
IN
AL,Ib
IN
eAX,Ib
OUT
Ib,AL
OUT
Ib,eAX
CALL
Jz
JMP
Jz
JMP
Ap
JMP
Jb
IN
AL,DX
IN
eAX,DX
OUT
DX,AL
OUT
DX,eAX
F? LOCKINT 1REPNZ/
XACQUIRE
REPZ/
XRELEASE
HLT CMCGRP3a
Eb
GRP3b
Ev
CLCSTCCLI STICLDSTDGRP4
Eb
GRP5
Ev

¦³¨Ç OpCode ¨ã¦³¨â­Ó¦ì¤¸²Õ¡A³oºØ±¡§Î®É²Ä¤@­Ó¦ì¤¸²Õ¬O 0FH¡C¤Uªí¶È¦C¥X OpCode ªº²Ä¤G­Ó¦ì¤¸²Õ»P«ü¥OªºÃö«Y¡G

64-Bit OpCode Map
Two-byte Opcode Map ( First Byte is 0FH )
?0?1?2?3?4?5?6?7 ?8?9?A?B?C?D?E?F
0? GRP6GRP7 LAR
Gv,Ew
LSL
Gv,Ew
SYSCALLCLTSSYSRET INVDWBINVDUD2
1? GRP16?????? ????????
2? MOV
Rd,Cd
MOV
Rd,Dd
MOV
Cd,Rd
MOV
Dd,Rd
3? WRMSRRDTSCRDMSRRDPMCSYSENTERSYSEXITGETSEC 3-Byte
Esc
3-Byte
Esc
4? CMOVO
Gv,Ev
CMOVNO
Gv,Ev
CMOVB
Gv,Ev
CMOVNB
Gv,Ev
CMOVZ
Gv,Ev
CMOVNZ
Gv,Ev
CMOVBE
Gv,Ev
CMOVA
Gv,Ev
CMOVS
Gv,Ev
CMOVNS
Gv,Ev
CMOVPE
Gv,Ev
CMOVPO
Gv,Ev
CMOVL
Gv,Ev
CMOVGE
Gv,Ev
CMOVLE
Gv,Ev
CMOVG
Gv,Ev
5?
6?
7? GRP12 GRP13 GRP14 VMREAD
Ey,Gy
VMWRITE
Ey,Gy
8? JO
Jz
JNO
Jz
JB
Jz
JNB
Jz
JZ
Jz
JNZ
Jz
JBE
Jz
JA
Jz
JS
Jz
JNS
Jz
JPE
Jz
JPO
Jz
JL
Jz
JGE
Jz
JLE
Jz
JG
Jz
9? SETO
Eb
SETNO
Eb
SETB
Eb
SETNB
Eb
SETZ
Eb
SETNZ
Eb
SETBE
Eb
SETA
Eb
SETS
Eb
SETNS
Eb
SETPE
Eb
SETPO
Eb
SETL
Eb
SETGE
Eb
SETLE
Eb
SETG
Eb
A? PUSH
FS
POP
FS
CPUID BT
Ev,Gv
SHLD
Ev,Gv,Ib
SHLD
Ev,Gv,CL
PUSH
GS
POP
GS
RSM BTS
Ev,Gv
SHRD
Ev,Gv,Ib
SHRD
Ev,Gv,CL
GRP15IMUL
Gv,Ev
B? CMPXCHG
Eb,Gb
CMPXCHG
Ev,Gv
LSS
Gv,Mp
BTR
Ev,Gv
LFS
Gv,Mp
LGS
Gv,Mp
MOVZX
Gv,Eb
MOVZX
Gv,Ew
GRP10 GRP8
Ev,Ib
BTC
Ev,Gv
BSF
Gv,Ev
BSR
Gv,Ev
MOVSX
Gv,Eb
MOVSX
Gv,Ew
C? XADD
Eb,Gb
XADD
Ev,Gv
GRP9 BSWAP
RAX/EAX
/R8/R8D
BSWAP
RCX/ECX
/R9/R9D
BSWAP
RDX/EDX/
R10/R10D
BSWAP
RBX/EBX/
R11/R11D
BSWAP
RSP/ESP/
R12/R12D
BSWAP
RBP/EBP/
R13/R13D
BSWAP
RSI/ESI/
R14/R14D
BSWAP
RDI/EDI/
R15/R15D
D?
E?
F? UD0

¦³¨Ç«ü¥Oªº¾Þ§@½X¨ã¦³¤T­Ó¦ì¤¸²Õ¡A³oºØ±¡§Î¤S¤À¨âÃþ¡G①«e¨â­Ó¦ì¤¸²Õ¨Ì§Ç¬O 0FH 38H¡F②«e¨â­Ó¦ì¤¸²Õ¨Ì§Ç¬O 0FH 3AH¡C³o¨âÃþ¤£½×­þ¤@Ãþ¡A³£·|¦A±µ²Ä¤T­Ó¦ì¤¸²Õªº¾Þ§@½X¡C¦Ó¥B³o¨âÃþ±¡§Îªº«ü¥O³q±`¬O MMX¡BSSE¡BVEX µ¥³B²z¦h´CÅé¡B¦V¶qµ¥«ü¥O¡AÁöµM¥¦­Ì¤]ºâ¬O x86 «ü¥O¶°ªº¤@³¡¤À¡A¦ý¤£¦b¥»ªþ¿ý°Q½×½d³ò¡A©Ò¥H¤£¦C¥X¨Ó¤F¡C¦pªG­n¬d¾\¡A¥i¥H¦bºô¸ô¤W·j´M¡uIntel® 64 and IA-32 Architectures Software Developer's Manual, Volume 2¡v¡A¨Ã¬d¾\¨ä¤¤ªº¡uAPPENDIX A¡v¡C

©³¤U­n¦C¥X¨Óªº¬O¡A¦b 64-bit ¼Ò¦¡¤¤¤´µM¦³¾Þ§@½Xªº©µ¦ù¡C¸ò IA¡Ð32 ¤@¼Ë¡A¦³®É­Ô¡AModR/M ªº²Ä 3¡ã5 ¦ì¤¸³Q·í°µ OpCode ªº©µ¦ù¡C³o®É­Ô·|¥H GRP ªí¥Ü¤@¸s«ü¥O¡A³oºØ¾Þ§@½X©µ¦ù©Ò¥Nªíªº«ü¥O¦p¤Uªí¡G

64-Bit OpCode Extensions
GRPOpCodeModR/M bit 3-5
000001010011100101110111
GRP180-83 ADDORADCSBBANDSUBXORCMP
GRP2C0,C1,
D0-D3
ROLRORRCLRCRSHLSHRSAR
GRP3aF6 TEST
Eb,Ib
NOTNEGMULIMULDIVIDIV
GRP3bF7 TEST
Ev,Iz
NOTNEGMULIMULDIVIDIV
GRP4FE INCDEC
GRP5FF INCDECCALLCALL
Ep
JMP JMP
Mp
PUSH
GRP60F 00 SLDT
Rv/Mw
STR
Rv/Mw
LLDT
Ew
LTR
Ew
VERR
Ew
VERW
Ew
GRP70F 01 SGDT
Ms
SIDT
Ms
LGDT
Ms
LIDT
Ms
SMSW
Mw/Rv
LMSW
Ew
INVLPG
Mb
GRP80F BA BTBTSBTRBTC
GRP90F C7 CMPXCH8B Mq
CMPXCH16B Mdq
RDRAND
Rv
RDSEED
Rv
GRP100F B9 UD1UD1UD1UD1UD1UD1UD1UD1
GRP11aC6 MOV
Eb,Ib
XABOUT
Ib
GRP11bC7 MOV
Ev,Iz
XBEGIN
Jz
GRP120F 71
GRP130F 72
GRP140F 73
GRP150F AE XSAVEXRSTORXSAVEOPTCLFLUSH
GRP160F 18 RDFSBASE
Ry
RDGSBASE
Ry
WRFSBASE
Ry
WRGSBASE
Ry
GRP170F 38 F3 BLSR
Ry,Ey
BLSMSK
Ry,Ey
BLSI
Ry,Ey