Fig.A-1 One-Byte Opcode Map I
Title: One-Byte Opcode Map I 0 1 2 3 4 5 6 7 +---------------------------------------------------------------------------+ | ADD | PUSH | POP | 0|---------------------------------------------------------| | | | Eb,Gb | Ev,Gv | Gb,Eb | Gv,Ev | AL,Ib | eAX,Iv | ES | ES | |---------------------------------------------------------+--------+--------| | ADC | PUSH | POP | 1|---------------------------------------------------------| | | | Eb,Gb | Ev,Gv | Gb,Eb | Gv,Ev | AL,Ib | eAX,Iv | SS | SS | |---------------------------------------------------------+--------+--------| | AND | SEG | | 2|---------------------------------------------------------| | DAA | | Eb,Gb | Ev,Gv | Gb,Eb | Gv,Ev | AL,Ib | eAX,Iv | =ES | | |---------------------------------------------------------+--------+--------| | XOR | SEG | | 3|---------------------------------------------------------| | AAA | | Eb,Gb | Ev,Gv | Gb,Eb | Gv,Ev | AL,Ib | eAX,Iv | =SS | | |---------------------------------------------------------------------------| | INC general register | 4|---------------------------------------------------------------------------| | eAX | eCX | eDX | eBX | eSP | eBP | eSI | eDI | |---------------------------------------------------------------------------| | PUSH general register | 5|---------------------------------------------------------------------------| | eAX | eCX | eDX | eBX | eSP | eBP | eSI | eDI | |--------+--------+---------+---------+---------+---------+--------+--------| | | | BOUND | ARPL | SEG | SEG | Operand| Address| 6| PUSHA | POPA | | | | | | | | | | Gv,Ma | Ew,Rw | =FS | =GS | Size | Size | |---------------------------------------------------------------------------| | Short displacement jump of condition (Jb) | 7|---------------------------------------------------------------------------| | JO | JNO | JB | JNB | JZ | JNZ | JBE | JNBE | |-----------------+---------+---------+-------------------+-----------------| | Immediate Grpl | | Grpl | TEST | XCNG | 8|-----------------| | |-------------------+-----------------| | Eb,Ib | Ev,Iv | | Ev,Iv | Eb,Gb | Ev,Gv | Eb,Gb | Ev,Gv | |--------+------------------------------------------------------------------| | | XCHG word or double-word register with eAX | 9| NOP |------------------------------------------------------------------| | | eCX | eDX | eBX | eSP | eBP | eSI | eDI | |-------------------------------------+---------+---------+--------+--------| | MOV | MOVSB | MOVSW/D | CMPSB |CMPSW/D | A|-------------------------------------| | | | | | AL,Ob | eAX,Ov | Ob,AL | Ov,eAX | Xb,Yb | Xv,Yv | Xb,Yb | Xv,Yv | |---------------------------------------------------------------------------| | MOV immediate byte into byte register | B|---------------------------------------------------------------------------| | AL | CL | DL | BL | AH | CH | DH | BH | |-----------------+-------------------+---------+---------+-----------------| | Shift Grp2 | RET near | LES | LDS | MOV | C|-----------------+-------------------| | |-----------------| | Eb,Ib | Ev,Iv | Iw | | Gv,Mp | Gv,Mp | Eb,Ib | Ev,Iv | |-------------------------------------+---------+---------+--------+--------| | Shift Grp2 | | | | | D|-------------------------------------| AAM | AAD | | XLAT | | Eb,1 | Ev,1 | Eb,CL | Ev,CL | | | | | |--------+--------+---------+---------+-------------------+-----------------| |LOOPNE | LOOPE | LOOP | JCXZ | IN | OUT | E| | | | |-------------------+-----------------| | Jb | Jb | Jb | Jb | AL,Ib | eAX,Ib | Ib,AL | Ib,eAX | |--------+--------+---------+---------+---------+---------+-----------------| | | | | REP | | | Unary Grp3 | F| LOCK | | REPNE | | HLT | CMC |-----------------| | | | | REPE | | | Eb | Ev | +---------------------------------------------------------------------------+ See Also: "Fig.A-2 One-Byte Opcode Map II" "Fig.A-3 Two-Byte Opcode Map I"Fig.A-2 One-Byte Opcode Map II
Title: One-Byte Opcode Map II 8 9 A B C D E F +---------------------------------------------------------------------------+ | OR | PUSH | 2-byte | 0|---------------------------------------------------------| | | | Eb,Gb | Ev,Gv | Gb,Eb | Gv,Ev | AL,Ib | eAX,Iv | CS | escape | |---------------------------------------------------------+--------+--------| | SBB | PUSH | POP | 1|---------------------------------------------------------| | | | Eb,Gb | Ev,Gv | Gb,Eb | Gv,Ev | AL,Ib | eAX,Iv | DS | DS | |---------------------------------------------------------+--------+--------| | SUB | SEG | | 2|---------------------------------------------------------| | DAS | | Eb,Gb | Ev,Gv | Gb,Eb | Gv,Ev | AL,Ib | eAX,Iv | =CS | | |---------------------------------------------------------+--------+--------| | CMP | SEG | | 3|---------------------------------------------------------| | AAS | | Eb,Gb | Ev,Gv | Gb,Eb | Gv,Ev | AL,Ib | eAX,Iv | =CS | | |---------------------------------------------------------------------------| | DEC general register | 4|---------------------------------------------------------------------------| | eAX | eCX | eDX | eBX | eSP | eBP | eSI | eDI | |---------------------------------------------------------------------------| | POP into general register | 5|---------------------------------------------------------------------------| | eAX | eCX | eDX | eBX | eSP | eBP | eSI | eDI | |--------+--------+---------+---------+---------+---------+--------+--------| | PUSH | IMUL | PUSH | IMUL | INSB | INSW/D | OUTSB |OUTSW/D | 6| | | | | | | | | | Ib | GvEvIv | Ib | GvEvIv | Yb,DX | Yb,DX | Dx,Xb | DX,Xv | |---------------------------------------------------------------------------| | Short-displacement jump on condition(Jb) | 7|---------------------------------------------------------------------------| | JS | JNS | JP | JNP | JL | JNL | JLE | JNLE | |-------------------------------------+---------+---------+--------+--------| | MOV | MOV | LEA | MOV | POP | 8|-------------------------------------| | | | | | Eb,Gb | Ev,Gv | Gb,Eb | Gv,Ev | Ew,Sw | Gv,M | Sw,Ew | Ev | |--------+--------+---------+---------+---------+---------+--------+--------| | | | CALL | | PUSHF | POPF | | | 9| CBW | CWD | | WAIT | | | SAHF | LAHF | | | | Ap | | Fv | Fv | | | |-----------------+---------+---------+---------+---------+--------+--------| | TEST | STOSB | STOSW/D | LODSB | LODSW/D | SCASB |SCASW/D | A|-----------------| | | | | | | | AL,Ib |eAX,Iv | Yb,AL | Yv,eAX | AL,Xb | eAX,Xv | AL,Xb |eAX,Xv | |---------------------------------------------------------------------------| | MOV immediate word or double into word or double register | B|---------------------------------------------------------------------------| | eAX | eCX | eDX | eBX | eSP | eBP | eSI | eDI | |--------+--------+-------------------+---------+---------+--------+--------| | ENTER | | RET far | INT | INT | | | C| | LEAVE |-------------------| | | INTO | IRET | | Iw,Ib | | Iw | | 3 | Ib | | | |---------------------------------------------------------------------------| | | D| ESC(Escape to coprocessor instruction set) | | | |---------------------------------------------------------------------------| | CALL | JNP | IN | OUT | E| |----------------------------+-------------------+-----------------| | Av | Jv | Ap | Jb | AL,DX | eAX,DX | DX,AL | DX,eAX | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | |INC/DEC |Indirct | F| CLC | STC | CLI | STI | CLD | STD | | | | | | | | | | Grp4 | Grp5 | +---------------------------------------------------------------------------+ See Also: "Fig.A-1 One-Byte Opcode Map I" "Fig.A-3 Two-Byte Opcode Map I"Fig.A-3 Two-Byte Opcode Map I
Title: Two-Byte Opcode Map I (first byte is 0FH) 0 1 2 3 4 5 6 7 +---------------------------------------------------------------------------+ | | | 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) | 8|---------------------------------------------------------------------------| | JO | JNO | JB | JNB | JZ | JNZ | JBE | JNBE | |---------------------------------------------------------------------------| | Byte Set on condition (Eb) | 9|---------------------------------------------------------------------------| | SETO | SETNO | SETB | SETNB | SETZ | SETNZ | SETBE | SETNBE | |--------+--------+---------+---------+---------+---------+--------+--------| | PUSH | POP | | BT | SHLD | SHLD | | | A| | | | | | | | | | FS | FS | | Ev,Gv | EvGvIb | EvGvCL | | | |--------+--------+---------+---------+---------+---------+-----------------| | | | LSS | BTR | LFS | LGS | MOVZX | B| | | | | | |-----------------| | | | Mp | Ev,Gv | Mp | Mp | Gv,Eb | Gv,Ew | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | C| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | D| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | E| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | F| | | | | | | | | | | | | | | | | | +---------------------------------------------------------------------------+ See Also: "Fig.A-4 Two-Byte Opcode Map II" "Fig.A-1 One-Byte Opcode Map I"Fig.A-4 Two-Byte Opcode Map II
Title: Two-Byte Opcode Map II (first byte is 0FH) 8 9 A B C D E F +---------------------------------------------------------------------------+ | | | | | | | | | 0| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | 1| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | 2| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | 3| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | 4| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | 5| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | 6| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | 7| | | | | | | | | | | | | | | | | | |---------------------------------------------------------------------------| | Long-displacement jump on condition (Jv) | 8|---------------------------------------------------------------------------| | JS | JNS | JP | JNP | JL | JNL | JLE | JNLE | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | 9| SETS | SETNS | SETP | SETNP | SETL | SETNL | SETLE | SETNLE | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | PUSH | POP | | BTS | SHRD | SHRD | | IMUL | A| | | | | | | | | | GS | GS | | Ev,Gv | EvGvIb | EvGvCL | | Gv,Ev | |--------+--------+---------+---------+---------+---------+-----------------| | | | Grp-8 | BTC | BSF | BSR | MOVSX | B| | | | | | |-----------------| | | | Ev,Ib | Ev,Gv | Gv,Ev | Gv,Ev | Gv,Eb Gv,Ew | |--------+--------+---------+---------+---------+---------+-----------------| | | | | | | | | | C| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | D| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | E| | | | | | | | | | | | | | | | | | |--------+--------+---------+---------+---------+---------+--------+--------| | | | | | | | | | F| | | | | | | | | | | | | | | | | | +---------------------------------------------------------------------------+ See Also: "Fig.A-3 Two-Byte Opcode Map I" "Fig.A-1 One-Byte Opcode Map I"Fig.A-5 Opcodes determined by bits 5,4,3 of modR/M byte:
Title: Opcodes determined by bits 5,4,3 of modR/M byte: +-----------------------+ | mod | nnn | R/M | +-----------------------+ Group+ 000 001 010 011 100 101 110 111 v+---------------------------------------------------------------+ 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 | | +---------------------------------------------------------------+ +-----------------------+ | mod | nnn | R/M | +-----------------------+ Group+ 000 001 010 011 100 101 110 111 v+---------------------------------------------------------------+ 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 | | | | | | | | | | +---------------------------------------------------------------+