X86 Opcode and Instruction Reference Home

Other editions: coder32, coder64, coder, geek32, geek

one-byte opcodes index:

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF

two-byte opcodes (0F..) index:

00 01 02 03 05 06 07 08 09 0B 0D 10 11 12 13 14 15 16 17 18 1F 20 21 22 23 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 38 3A 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE
pf0Fposofldsoprocstmrlxmnemonicop1op2op3op4iextgrp1grp2grp3tested fmodif fdef fundef ff valuesdescription, notes                                                  
00dwrLADDEbGbgen arithbinaryo..szapco..szapcAdd
01dWrLADDEvqpGvqpgen arithbinaryo..szapco..szapcAdd
02DwrADDGbEbgen arithbinaryo..szapco..szapcAdd
03DWrADDGvqpEvqpgen arithbinaryo..szapco..szapcAdd
04wADDALIbgen arithbinaryo..szapco..szapcAdd
05WADDrAXIvdsgen arithbinaryo..szapco..szapcAdd
06EinvalidInvalid Instruction in 64-Bit Mode
07EinvalidInvalid Instruction in 64-Bit Mode
08dwrLOREbGbgen logicalo..szapco..sz.pc.....a..o......cLogical Inclusive OR
09dWrLOREvqpGvqpgen logicalo..szapco..sz.pc.....a..o......cLogical Inclusive OR
0ADwrORGbEbgen logicalo..szapco..sz.pc.....a..o......cLogical Inclusive OR
0BDWrORGvqpEvqpgen logicalo..szapco..sz.pc.....a..o......cLogical Inclusive OR
0CwORALIbgen logicalo..szapco..sz.pc.....a..o......cLogical Inclusive OR
0DWORrAXIvdsgen logicalo..szapco..sz.pc.....a..o......cLogical Inclusive OR
0EEinvalidInvalid Instruction in 64-Bit Mode
0F Two-byte Instructions
10dwrLADCEbGbgen arithbinary.......co..szapco..szapcAdd with Carry
11dWrLADCEvqpGvqpgen arithbinary.......co..szapco..szapcAdd with Carry
12DwrADCGbEbgen arithbinary.......co..szapco..szapcAdd with Carry
13DWrADCGvqpEvqpgen arithbinary.......co..szapco..szapcAdd with Carry
14wADCALIbgen arithbinary.......co..szapco..szapcAdd with Carry
15WADCrAXIvdsgen arithbinary.......co..szapco..szapcAdd with Carry
16EinvalidInvalid Instruction in 64-Bit Mode
17EinvalidInvalid Instruction in 64-Bit Mode
18dwrLSBBEbGbgen arithbinary.......co..szapco..szapcInteger Subtraction with Borrow
19dWrLSBBEvqpGvqpgen arithbinary.......co..szapco..szapcInteger Subtraction with Borrow
1ADwrSBBGbEbgen arithbinary.......co..szapco..szapcInteger Subtraction with Borrow
1BDWrSBBGvqpEvqpgen arithbinary.......co..szapco..szapcInteger Subtraction with Borrow
1CwSBBALIbgen arithbinary.......co..szapco..szapcInteger Subtraction with Borrow
1DWSBBrAXIvdsgen arithbinary.......co..szapco..szapcInteger Subtraction with Borrow
1EEinvalidInvalid Instruction in 64-Bit Mode
1FEinvalidInvalid Instruction in 64-Bit Mode
20dwrLANDEbGbgen logicalo..szapco..sz.pc.....a..o......cLogical AND
21dWrLANDEvqpGvqpgen logicalo..szapco..sz.pc.....a..o......cLogical AND
22DwrANDGbEbgen logicalo..szapco..sz.pc.....a..o......cLogical AND
23DWrANDGvqpEvqpgen logicalo..szapco..sz.pc.....a..o......cLogical AND
24wANDALIbgen logicalo..szapco..sz.pc.....a..o......cLogical AND
25WANDrAXIvdsgen logicalo..szapco..sz.pc.....a..o......cLogical AND
26Enullprefix segregNull Prefix in 64-bit Mode
27EinvalidInvalid Instruction in 64-Bit Mode
28dwrLSUBEbGbgen arithbinaryo..szapco..szapcSubtract
29dWrLSUBEvqpGvqpgen arithbinaryo..szapco..szapcSubtract
2ADwrSUBGbEbgen arithbinaryo..szapco..szapcSubtract
2BDWrSUBGvqpEvqpgen arithbinaryo..szapco..szapcSubtract
2CwSUBALIbgen arithbinaryo..szapco..szapcSubtract
2DWSUBrAXIvdsgen arithbinaryo..szapco..szapcSubtract
2EEundefinedprefix branchcond(branch hint prefixes have no effect in 64-bit mode)
2EEnullprefix segregNull Prefix in 64-bit Mode
2FEinvalidInvalid Instruction in 64-Bit Mode
30dwrLXOREbGbgen logicalo..szapco..sz.pc.....a..o......cLogical Exclusive OR
31dWrLXOREvqpGvqpgen logicalo..szapco..sz.pc.....a..o......cLogical Exclusive OR
32DwrXORGbEbgen logicalo..szapco..sz.pc.....a..o......cLogical Exclusive OR
33DWrXORGvqpEvqpgen logicalo..szapco..sz.pc.....a..o......cLogical Exclusive OR
34wXORALIbgen logicalo..szapco..sz.pc.....a..o......cLogical Exclusive OR
35WXORrAXIvdsgen logicalo..szapco..sz.pc.....a..o......cLogical Exclusive OR
36Enullprefix segregNull Prefix in 64-bit Mode
37EinvalidInvalid Instruction in 64-Bit Mode
38dwrCMPEbGbgen arithbinaryo..szapco..szapcCompare Two Operands
39dWrCMPEvqpGvqpgen arithbinaryo..szapco..szapcCompare Two Operands
3ADwrCMPGbEbgen arithbinaryo..szapco..szapcCompare Two Operands
3BDWrCMPGvqpEvqpgen arithbinaryo..szapco..szapcCompare Two Operands
3CwCMPALIbgen arithbinaryo..szapco..szapcCompare Two Operands
3DWCMPrAXIvdsgen arithbinaryo..szapco..szapcCompare Two Operands
3EEundefinedprefix branchcond(branch hint prefixes have no effect in 64-bit mode)
3EEnullprefix segregNull Prefix in 64-bit Mode
3FEinvalidInvalid Instruction in 64-Bit Mode
40EREXprefixAccess to new 8-bit registers
41EREX.BprefixExtension of the r/m field, base field, or opcode reg field
42EREX.XprefixExtension of the SIB index field
43EREX.XBprefixREX.X and REX.B combination
44EREX.RprefixExtension of the ModR/M reg field
45EREX.RBprefixREX.R and REX.B combination
46EREX.RXprefixREX.R and REX.X combination
47EREX.RXBprefixREX.R, REX.X and REX.B combination
48EREX.Wprefix64 Bit Operand Size
49EREX.WBprefixREX.W and REX.B combination
4AEREX.WXprefixREX.W and REX.X combination
4BEREX.WXBprefixREX.W, REX.X and REX.B combination
4CEREX.WRprefixREX.W and REX.R combination
4DEREX.WRBprefixREX.W, REX.R and REX.B combination
4EEREX.WRXprefixREX.W, REX.R and REX.X combination
4FEREX.WRXBprefixREX.W, REX.R, REX.X and REX.B combination
50+rEPUSHZvqgen stackPush Word, Doubleword or Quadword Onto the Stack
58+rEPOPZvqgen stackPop a Value from the Stack
60EinvalidInvalid Instruction in 64-Bit Mode
61EinvalidInvalid Instruction in 64-Bit Mode
62EinvalidInvalid Instruction in 64-Bit Mode
63DrEMOVSXDGdqpEdgen converMove with Sign-Extension
64Eundefinedprefix branchcond(branch hint prefixes have no effect in 64-bit mode)
65GSGSprefix segregGS segment override prefix
65undefinedprefix branchcond(used only with Jcc instructions)
66no mnemonicprefixOperand-size override prefix
66Mno mnemonicsse2prefixPrecision-size override prefix
67no mnemonicprefixAddress-size override prefix
68PUSHIvsgen stackPush Word, Doubleword or Quadword Onto the Stack
69IMULGvqpEvqpIvdsgen arithbinaryo..szapco......c...szap.Signed Multiply
6ASPUSHIbssgen stackPush Word, Doubleword or Quadword Onto the Stack
6BSIMULGvqpEvqpIbsgen arithbinaryo..szapco......c...szap.Signed Multiply
6Cwf1INSYbDXgen inout string.d......Input from Port to String
INSBYbDX
6DWf1INSYwDXgen inout string.d......Input from Port to String
INSWYwDX
6DWf1INSYvDXgen inout string.d......Input from Port to String
INSDYdDX
6Ewf1OUTSDXXbgen inout string.d......Output String to Port
OUTSBDXXb
6FWf1OUTSDXXwgen inout string.d......Output String to Port
OUTSWDXXw
6FWf1OUTSDXXvgen inout string.d......Output String to Port
OUTSDDXXd
70tttnJOJbsgen branchcondo.......Jump short if overflow (OF=1)
71tttNJNOJbsgen branchcondo.......Jump short if not overflow (OF=0)
72ttTnJBJbsgen branchcond.......cJump short if below/not above or equal/carry (CF=1)
JNAEJbs
JCJbs
73ttTNJNBJbsgen branchcond.......cJump short if not below/above or equal/not carry (CF=0)
JAEJbs
JNCJbs
74tTtnJZJbsgen branchcond....z...Jump short if zero/equal (ZF=0)
JEJbs
75tTtNJNZJbsgen branchcond....z...Jump short if not zero/not equal (ZF=1)
JNEJbs
76tTTnJBEJbsgen branchcond....z..cJump short if below or equal/not above (CF=1 AND ZF=1)
JNAJbs
77tTTNJNBEJbsgen branchcond....z..cJump short if not below or equal/above (CF=0 AND ZF=0)
JAJbs
78TttnJSJbsgen branchcond...s....Jump short if sign (SF=1)
79TttNJNSJbsgen branchcond...s....Jump short if not sign (SF=0)
7ATtTnJPJbsgen branchcond......p.Jump short if parity/parity even (PF=1)
JPEJbs
7BTtTNJNPJbsgen branchcond......p.Jump short if not parity/parity odd
JPOJbs
7CTTtnJLJbsgen branchcondo..s....Jump short if less/not greater (SF!=OF)
JNGEJbs
7DTTtNJNLJbsgen branchcondo..s....Jump short if not less/greater or equal (SF=OF)
JGEJbs
7ETTTnJLEJbsgen branchcondo..sz...Jump short if less or equal/not greater ((ZF=1) OR (SF!=OF))
JNGJbs
7FTTTNJNLEJbsgen branchcondo..sz...Jump short if not less nor equal/greater ((ZF=0) AND (SF=OF))
JGJbs
80w0LADDEbIbgen arithbinaryo..szapco..szapcAdd
80w1LOREbIbgen logicalo..szapco..sz.pc.....a..o......cLogical Inclusive OR
80w2LADCEbIbgen arithbinary.......co..szapco..szapcAdd with Carry
80w3LSBBEbIbgen arithbinary.......co..szapco..szapcInteger Subtraction with Borrow
80w4LANDEbIbgen logicalo..szapco..sz.pc.....a..o......cLogical AND
80w5LSUBEbIbgen arithbinaryo..szapco..szapcSubtract
80w6LXOREbIbgen logicalo..szapco..sz.pc.....a..o......cLogical Exclusive OR
80w7CMPEbIbgen arithbinaryo..szapco..szapcCompare Two Operands
81W0LADDEvqpIvdsgen arithbinaryo..szapco..szapcAdd
81W1LOREvqpIvdsgen logicalo..szapco..sz.pc.....a..o......cLogical Inclusive OR
81W2LADCEvqpIvdsgen arithbinary.......co..szapco..szapcAdd with Carry
81W3LSBBEvqpIvdsgen arithbinary.......co..szapco..szapcInteger Subtraction with Borrow
81W4LANDEvqpIvdsgen logicalo..szapco..sz.pc.....a..o......cLogical AND
81W5LSUBEvqpIvdsgen arithbinaryo..szapco..szapcSubtract
81W6LXOREvqpIvdsgen logicalo..szapco..sz.pc.....a..o......cLogical Exclusive OR
81W7CMPEvqpIvdsgen arithbinaryo..szapco..szapcCompare Two Operands
82EinvalidInvalid Instruction in 64-Bit Mode
83SW0LADDEvqpIbsgen arithbinaryo..szapco..szapcAdd
83SW1LOREvqpIbsgen logicalo..szapco..sz.pc.....a..o......cLogical Inclusive OR
83SW2LADCEvqpIbsgen arithbinary.......co..szapco..szapcAdd with Carry
83SW3LSBBEvqpIbsgen arithbinary.......co..szapco..szapcInteger Subtraction with Borrow
83SW4LANDEvqpIbsgen logicalo..szapco..sz.pc.....a..o......cLogical AND
83SW5LSUBEvqpIbsgen arithbinaryo..szapco..szapcSubtract
83SW6LXOREvqpIbsgen logicalo..szapco..sz.pc.....a..o......cLogical Exclusive OR
83SW7CMPEvqpIbsgen arithbinaryo..szapco..szapcCompare Two Operands
84dwrTESTEbGbgen arithbinaryo..szapco..sz.pc.....a..o......cLogical Compare
85dWrTESTEvqpGvqpgen arithbinaryo..szapco..sz.pc.....a..o......cLogical Compare
86DwrLXCHGGbEbgen datamovExchange Register/Memory with Register
87DWrLXCHGGvqpEvqpgen datamovExchange Register/Memory with Register
88dwrMOVEbGbgen datamovMove
89dWrMOVEvqpGvqpgen datamovMove
8ADwrMOVGbEbgen datamovMove
8BDwrMOVGvqpEvqpgen datamovMove
8CdrMOVEvqpSwgen datamovMove
8DrLEAGvqpMgen datamovLoad Effective Address
8EDrMOVSwEvqpgen datamovMove
8FW0POPEvgen stackPop a Value from the Stack
8FW0EPOPEvqgen stackPop a Value from the Stack
90+rXCHGZvqprAXgen datamovExchange Register/Memory with Register
90NOPgen controlNo Operation
F390D1no mnemonic nopgen controlNo Operation
F390PAUSEsse2cachectSpin Loop Hint
98ECBWAHALgen converConvert
CWDEEAXAX
CDQERAXEAX
99ECWDDXAXgen converConvert
CDQEDXEAX
CQORDXRAX
9AEinvalidInvalid Instruction in 64-Bit Mode
9BFWAITx87fpu control01230123Check pending unmasked floating-point exceptions
WAIT
9Bno mnemonicprefix x87fpucontrol01230123Wait Prefix
9CEPUSHFF...gen stack flgctrlodiszapcPush rFLAGS Register onto the Stack
PUSHFQR...
9DEPOPFF...gen stack flgctrlodiszapcodiszapcPop Stack into rFLAGS Register
POPFQR...
9ED2SAHFAHgen datamov flgctrl...szapc...szapcStore AH into Flags
9FD2LAHFAHgen datamov flgctrl...szapcLoad Status Flags into AH Register
A0wMOVALObgen datamovMove
A1WMOVrAXOvqpgen datamovMove
A2wMOVObALgen datamovMove
A3WMOVOvqprAXgen datamovMove
A4wMOVSYbXbgen datamov string.d......Move Data from String to String
MOVSBYbXb
A5WEMOVSYvqpXvqpgen datamov string.d......Move Data from String to String
MOVSWYwXw
MOVSDYdXd
MOVSQYqpXqp
A6wCMPSYbXbgen arith stringbinary.d......o..szapco..szapcCompare String Operands
CMPSBYbXb
A7WECMPSYvqpXvqpgen arith stringbinary.d......o..szapco..szapcCompare String Operands
CMPSWYwXw
CMPSDYdXd
CMPSQYqpXqp
A8wTESTALIbgen logicalo..szapco..sz.pc.....a..o......cLogical Compare
A9WTESTrAXIvdsgen logicalo..szapco..sz.pc.....a..o......cLogical Compare
AAwSTOSYbALgen datamov string.d......Store String
STOSBYbAL
ABWESTOSYvqprAXgen datamov string.d......Store String
STOSWYwAX
STOSDYdEAX
STOSQYqpRAX
ACwLODSALXbgen datamov string.d......Load String
LODSBALYb
ADWELODSrAXXvqpgen datamov string.d......Load String
LODSWAXXw
LODSDEAXXd
LODSQRAXXqp
AEwSCASYbALgen arith stringbinary.d......o..szapco..szapcScan String
SCASBYbAL
AFWESCASYvqprAXgen arith stringbinary.d......o..szapco..szapcScan String
SCASWYwAX
SCASDYdEAX
SCASQYqpRAX
B0+rMOVZbIbgen datamovMove
B8+rMOVZvqpIvqpgen datamovMove
C0w0ROLEbIbgen shftroto..szapco..szapco.......Rotate
C0w1ROREbIbgen shftroto..szapco..szapco.......Rotate
C0w2RCLEbIbgen shftrot.......co..szapco..szapco.......Rotate
C0w3RCREbIbgen shftrot.......co..szapco..szapco.......Rotate
C0w4SHLEbIbgen shftroto..szapco..sz.pco....a.cShift
SALEbIb
C0w5SHREbIbgen shftroto..szapco..sz.pco....a.cShift
C0w6U3SAL aliasEbIbgen shftroto..szapco..sz.pco....a.cShift
SHL aliasEbIb
C0w7SAREbIbgen shftroto..szapco..sz.pco....a..Shift
C1W0ROLEvqpIbgen shftroto..szapco..szapco.......Rotate
C1W1ROREvqpIbgen shftroto..szapco..szapco.......Rotate
C1W2RCLEvqpIbgen shftrot.......co..szapco..szapco.......Rotate
C1W3RCREvqpIbgen shftrot.......co..szapco..szapco.......Rotate
C1W4SHLEvqpIbgen shftroto..szapco..sz.pco....a.cShift
SALEvqpIb
C1W5SHREvqpIbgen shftroto..szapco..sz.pco....a.cShift
C1w6U3SAL aliasEvqpIbgen shftroto..szapco..sz.pco....a.cShift
SHL aliasEvqpIb
C1W7SAREvqpIbgen shftroto..szapco..sz.pco....a..Shift
C2RETNIwgen branch stackReturn from procedure
C3RETNgen branch stackReturn from procedure
C4EinvalidInvalid Instruction in 64-Bit Mode
C5EinvalidInvalid Instruction in 64-Bit Mode
C6w0MOVEbIbgen datamovMove
C7W0MOVEvqpIvdsgen datamovMove
C8ENTERrBPIwIbgen stackMake Stack Frame for Procedure Parameters
C9LEAVErBPgen stackHigh Level Procedure Exit
CAfRETFIwgen branch stackReturn from procedure
CBfRETFgen branch stackReturn from procedure
CCfINT3e...gen break stack..i.......i.......i.....Call to Interrupt Procedure
CDfINTIbe...gen break stack..i.......i.......i.....Call to Interrupt Procedure
CEfINTOe...gen break stacko.........i.......i.......i.....Call to Interrupt Procedure
CFEfIRETF...gen break stackodiszapcodiszapcInterrupt Return
IRETDE...
IRETQR...
D0w0ROLEb1gen shftroto..szapco..szapcRotate
D0w1ROREb1gen shftroto..szapco..szapcRotate
D0w2RCLEb1gen shftrot.......co..szapco..szapcRotate
D0w3RCREb1gen shftrot.......co..szapco..szapcRotate
D0w4SHLEb1gen shftroto..szapco..sz.pc.....a..Shift
SALEb1
D0w5SHREb1gen shftroto..szapco..sz.pc.....a..Shift
D0w6U3SAL aliasEb1gen shftroto..szapco..sz.pc.....a..Shift
SHL aliasEb1
D0w7SAREb1gen shftroto..szapco..sz.pc.....a..Shift
D1W0ROLEvqp1