¤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¦pn¤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ªº®æ¦¡¦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
¥Ñ©ó¡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
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
|
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 |
©³¤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¡An¬d¾\¡u8086/8088 Argument Addressing Codes¡v¡C
?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? | NOP | XCHG 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
Group | OpCode | ModR/M bit 3-5 | |||||||
000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 | ||
GRP1 | 80-83 | ADD | OR | ADC | SBB | AND | SUB | XOR | CMP |
GRP2 | D0-D3 | ROL | ROR | RCL | RCR | SHL | SHR | SAR | |
GRP3a | F6 | TEST Eb,Ib |
NOT | NEG | MUL | IMUL | DIV | IDIV | |
GRP3b | F7 | TEST Ev,Iv |
NOT | NEG | MUL | IMUL | DIV | IDIV | |
GRP4 | FE | INC | DEC | ||||||
GRP5 | FF | INC | DEC | CALL | CALL Ep |
JMP | JMP Ep |
PUSH |
¤W±ªº OpCode Map ¤¤¡A¦³´X¶µnª`·Nªº¨Æ±¡¡A¥²¶·µy°µ»¡©ú¡C
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ùØ»¡ªº¤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¤Sn¯à©M¤§«eªº 8086¡B80286 ¬Û®e¡C¦¹¥~¡A80386 ÁÙ·s¼W«OÅ@¼Ò¦¡»PµêÀÀ 86 ¼Ò¦¡¡C¦]¦¹¦b³]p¾Þ§@½X®É¡A¹ê¦b¬O·Ù¶OW¤ß¡C
¤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
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 |
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´yz¾¹¡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
?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 |
INSB | INSW/ INSD | OUTSB | OUTSW/ 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? | NOP | XCHG 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 | SAHF | LAHF |
A? | MOV AL,Ob |
MOV eAX,Ov |
MOV Ob,AL |
MOV Ov,eAX |
MOVSB | MOVSW/ MOVSD | CMPSB | CMPSW/ CMPSD |
TEST AL,Ib |
TEST eAX,Iv |
STOSB | STOSW/ STOSD | LODSB | LODSW/ LODSD | SCASB | SCASW/ 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 |
LEAVE | RETF Iw | RETF | INT 3 |
INT Ib | INTO | IRET |
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? | LOCK | REPNZ | REPZ | HLT | CMC | GRP3a Eb |
GRP3b Ev | CLC | STC | CLI | STI | CLD | STD | GRP4 Eb |
GRP5 Ev |
¦³¨Ç OpCode ¨ã¦³¨âӦ줸²Õ¡A³oºØ±¡§Î®É²Ä¤@Ӧ줸²Õ¬O 0F0H¡C¤Uªí¶È¦C¥X OpCode ªº²Ä¤GӦ줸²Õ»P«ü¥OªºÃö«Y¡G
?0 | ?1 | ?2 | ?3 | ?4 | ?5 | ?6 | ?7 | ?8 | ?9 | ?A | ?B | ?C | ?D | ?E | ?F | |
0? | GRP6 | GRP7 | LAR Gv,Ew |
LSL Gv,Ew |
CLTS | INVD | WBINVD | UD2 | ||||||||
1? | ||||||||||||||||
2? | MOV Rd,Cd |
MOV Rd,Dd |
MOV Cd,Rd |
MOV Dd,Rd |
MOV Rd,Td |
MOV Td,Rd |
||||||||||
3? | WRMSR | RDTSC | RDMSR | RDPMC | SYSENTER | SYSEXIT | ||||||||||
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 |
GRP15 | IMUL 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
GRP | OpCode | ModR/M bit 3-5 | |||||||
000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 | ||
GRP1 | 80-83 | ADD | OR | ADC | SBB | AND | SUB | XOR | CMP |
GRP2 | D0-D3 | ROL | ROR | RCL | RCR | SHL | SHR | SAR | |
GRP3a | F6 | TEST Eb,Ib |
NOT | NEG | MUL | IMUL | DIV | IDIV | |
GRP3b | F7 | TEST Ev,Iv |
NOT | NEG | MUL | IMUL | DIV | IDIV | |
GRP4 | FE | INC | DEC | ||||||
GRP5 | FF | INC | DEC | CALL | CALL Ep | JMP | JMP Ep | PUSH | |
GRP6 | 0F 00 | SLDT Ew |
STR Ev |
LLDT Ew |
LTR Ew |
VERR Ew |
VERW Ew |
||
GRP7 | 0F 01 | SGDT Ms |
SIDT Ms |
LGDT Ms |
LIDT Ms |
SMSW Ew |
LMSW Ew |
INVLPG Mb | |
GRP8 | 0F BA | BT | BTS | BTR | BTC | ||||
GRP9 | 0F C7 | CMPXCH8B Mq |
|||||||
GRP10 | 0F B9 | ||||||||
GRP11a | C6 | MOV Eb,Ib |
|||||||
GRP11b | C7 | MOV Ev,Iv |
|||||||
GRP12 | 0F 71 | ||||||||
GRP13 | 0F 72 | ||||||||
GRP14 | 0F 73 | ||||||||
GRP15 | 0F AE | CLFLUSH | |||||||
GRP16 | 0F 18 |
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¤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¡CY¦³¬Y³¡¤À¤£¦s¦b¡A¨º»ò´N·|ªÅ¤U¨Ó¡C
©³¤Uªºªí®æ¬O¹ï¤»¤Q¥|¦ì¤¸¼Ò¦¡¤U¡AOpCode Map ªí®æ¤¤¡A¹Bºâ¤¸ªº»¡©ú¡C
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 |
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´yz¾¹¡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
?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? | REX | REX | REX | REX | REX | REX | REX | REX | REX | REX | REX | REX | REX | REX | REX | REX |
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 |
INSB | INSW/ INSD | OUTSB | OUTSW/ 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 | SAHF | LAHF |
A? | MOV AL,Ob |
MOV rAX,Ov |
MOV Ob,AL |
MOV Ov,rAX |
MOVSB | MOVSW/ D/Q | CMPSB | CMPSW/ D/Q |
TEST AL,Ib |
TEST rAX,Iz |
STOSB | STOSW/ D/Q | LODSB | LODSW/ D/Q | SCASB | SCASW/ 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 | RET | VEX +2byte | VEX +1byte |
GRP11a Eb,Ib |
GRP11b Ev,Iv |
ENTER Iw,Ib |
LEAVE | RETF Iw | RETF | INT 3 |
INT Ib | INTO | IRET/ 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? | LOCK | INT 1 | REPNZ/ XACQUIRE | REPZ/ XRELEASE | HLT | CMC | GRP3a Eb |
GRP3b Ev | CLC | STC | CLI | STI | CLD | STD | GRP4 Eb |
GRP5 Ev |
¦³¨Ç OpCode ¨ã¦³¨âӦ줸²Õ¡A³oºØ±¡§Î®É²Ä¤@Ӧ줸²Õ¬O 0FH¡C¤Uªí¶È¦C¥X OpCode ªº²Ä¤GӦ줸²Õ»P«ü¥OªºÃö«Y¡G
?0 | ?1 | ?2 | ?3 | ?4 | ?5 | ?6 | ?7 | ?8 | ?9 | ?A | ?B | ?C | ?D | ?E | ?F | |
0? | GRP6 | GRP7 | LAR Gv,Ew |
LSL Gv,Ew |
SYSCALL | CLTS | SYSRET | INVD | WBINVD | UD2 | ||||||
1? | GRP16 | ?? | ?? | ?? | ?? | ?? | ?? | ?? | ||||||||
2? | MOV Rd,Cd |
MOV Rd,Dd |
MOV Cd,Rd |
MOV Dd,Rd |
||||||||||||
3? | WRMSR | RDTSC | RDMSR | RDPMC | SYSENTER | SYSEXIT | GETSEC | 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 |
GRP15 | IMUL 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ªGn¬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
©³¤Un¦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
GRP | OpCode | ModR/M bit 3-5 | |||||||
000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 | ||
GRP1 | 80-83 | ADD | OR | ADC | SBB | AND | SUB | XOR | CMP |
GRP2 | C0,C1, D0-D3 |
ROL | ROR | RCL | RCR | SHL | SHR | SAR | |
GRP3a | F6 | TEST Eb,Ib |
NOT | NEG | MUL | IMUL | DIV | IDIV | GRP3b | F7 | TEST Ev,Iz |
NOT | NEG | MUL | IMUL | DIV | IDIV |
GRP4 | FE | INC | DEC | ||||||
GRP5 | FF | INC | DEC | CALL | CALL Ep | JMP | JMP Mp | PUSH | |
GRP6 | 0F 00 | SLDT Rv/Mw |
STR Rv/Mw |
LLDT Ew |
LTR Ew |
VERR Ew |
VERW Ew |
||
GRP7 | 0F 01 | SGDT Ms |
SIDT Ms |
LGDT Ms |
LIDT Ms |
SMSW Mw/Rv |
LMSW Ew |
INVLPG Mb | |
GRP8 | 0F BA | BT | BTS | BTR | BTC | ||||
GRP9 | 0F C7 | CMPXCH8B Mq CMPXCH16B Mdq |
RDRAND Rv |
RDSEED Rv | |||||
GRP10 | 0F B9 | UD1 | UD1 | UD1 | UD1 | UD1 | UD1 | UD1 | UD1 |
GRP11a | C6 | MOV Eb,Ib |
XABOUT Ib | ||||||
GRP11b | C7 | MOV Ev,Iz |
XBEGIN Jz | ||||||
GRP12 | 0F 71 | ||||||||
GRP13 | 0F 72 | ||||||||
GRP14 | 0F 73 | ||||||||
GRP15 | 0F AE | XSAVE | XRSTOR | XSAVEOPT | CLFLUSH | ||||
GRP16 | 0F 18 | RDFSBASE Ry | RDGSBASE Ry |
WRFSBASE Ry | WRGSBASE Ry |
||||
GRP17 | 0F 38 F3 | BLSR Ry,Ey |
BLSMSK Ry,Ey |
BLSI Ry,Ey |