AAA 37 ASCII adjust AL after addition
AAD D5 0A ASCII adjust AX before division
AAM D4 0A ASCII adjust AX after multiplication
AAS 3F ASCII adjust AL after subtraction
ADC AL,imm8 14 ib Add with carry
ADC EAX,imm32 15 id Add with carry
ADC r/m8,imm8 80 /2 ib Add with carry
ADC r/m32,imm32 81 /2 id Add with carry
ADC r/m32,imm8 83 /2 ib Add with carry
ADC r/m8,r8 10 /r Add with carry
ADC r/m32,r32 11 /r Add with carry
ADC r8,r/m8 12 /r Add with carry
ADC r32,r/m32 13 /r Add with carry
ADD AL,imm8 04 ib Add
ADD EAX,imm32 05 id Add
ADD r/m8,imm8 80 /0 ib Add
ADD r/m32,imm32 81 /0 id Add
ADD r/m32,imm8 83 /0 ib Add
ADD r/m8,r8 00 /r ADD
ADD r/m32,r32 01 /r ADD
ADD r8,r/m8 02 /r ADD
ADD r32,r/m32 03 /r ADD
AND AL,imm8 24 ib AND
AND EAX,imm32 25 id AND
AND r/m8,imm8 80 /4 ib AND
AND r/m32,imm32 81 /4 id AND
AND r/m32,imm8 83 /4 ib AND
AND r/m8,r8 20 /r AND
AND r/m32,r32 21 /r AND
AND r8,r/m8 22 /r AND
AND r32,r/m32 23 /r AND
ARPL r/m16,r16 63 /r Adjust Request Privilege Level of Sel.
BOUND r32,m32&32 62 /r Check Array Index Against Bounds
BSF r32,r/m32 0F BC /r Bit scan forward on r/m32
BSR r32,r/m32 0F BD /r Bit scan reverse on r/m32
BSWAP r32 0F C8+rd Reverses the byte order of a r32
BT r/m32,r32 0F A3 /r Bit Test
BT r/m32,imm8 0F BA /4 ib Bit Test
BTC r/m32,r32 0F BB /r Bit Test and Complement
BTC r/m32,imm8 0F BA /7 ib Bit Test and Complement
BTR r/m32,r32 0F B3 /r Bit Test and Clear
BTR r/m32,imm8 0F BA /6 ib Bit Test and Clear
BTS r/m32,r32 0F AB /r Bit Test and Set
BTS r/m32,imm8 0F BA /5 ib Bit Test and Set
CALL rel32 E8 cd Call near, rel to n.inst
CALL r/m32 FF /2 Call near, abs.ind.add. given in r/m32
CALL ptr16:32 9A cp Call far, abs.add. given in operand
CALL m16:32 FF /3 Call far, abs.ind.add. given in m16:32
CBW 98 Convert Byte to Word
CWD 99 Convert Word to Doubleword
CDQ 99 Convert Doubleword to Quadword
CLC F8 Clear CF flag
CLD FC Clear DF flag
CLI FA Clear interrupt flag
CLTS 0F 06 Clear Task-Switched Flag in Control Reg. Zero
CMC F5 Complement CF flag
CMOVA r32,r/m32 0F 47 /r Move if above
CMOVAE r32,r/m32 0F 43 /r Move if above or equal
CMOVB r32,r/m32 0F 42 /r Move if below
CMOVBE r32,r/m32 0F 46 /r Move if below or equal
CMOVC r32,r/m32 0F 42 /r Move if carry
CMOVE r32,r/m32 0F 44 /r Move if equal
CMOVG r32,r/m32 0F 4F /r Move if greater
CMOVGE r32,r/m32 0F 4D /r Move if greater or equal
CMOVL r32,r/m32 0F 4C /r Move if less
CMOVLE r32,r/m32 0F 4E /r Move if less or equal
CMOVNA r32,r/m32 0F 46 /r Move if not above
CMOVNAE r32,r/m32 0F 42 /r Move if not above or equal
CMOVNB r32,r/m32 0F 43 /r Move if not below
CMOVNBE r32,r/m32 0F 47 /r Move if not below or equal
CMOVNC r32,r/m32 0F 43 /r Move if not carry
CMOVNE r32,r/m32 0F 45 /r Move if not equal
CMOVNG r32,r/m32 0F 4E /r Move if not greater
CMOVNGE r32,r/m32 0F 4C /r Move if not greater or equal
CMOVNL r32,r/m32 0F 4D /r Move if not less
CMOVNLE r32,r/m32 0F 4F /r Move if not less or equal
CMOVNO r32,r/m32 0F 41 /r Move if not overflow
CMOVNP r32,r/m32 0F 4B /r Move if not parity
CMOVNS r32,r/m32 0F 49 /r Move if not sign
CMOVNZ r32,r/m32 0F 45 /r Move if not zero
CMOVO r32,r/m32 0F 40 /r Move if overflow
CMOVP r32,r/m32 0F 4A /r Move if parity
CMOVPE r32,r/m32 0F 4A /r Move if parity even
CMOVPO r32,r/m32 0F 4B /r Move if parity odd
CMOVS r32,r/m32 0F 48 /r Move if sign
CMOVZ r32,r/m32 0F 44 /r Move if zero
CMP AL,imm8 3C ib Compare
CMP EAX,imm32 3D id Compare
CMP r/m8,imm8 80 /7 ib Compare
CMP r/m32,imm32 81 /7 id Compare
CMP r/m32,imm8 83 /7 ib Compare
CMP r/m8,r8 38 /r Compare
CMP r/m32,r32 39 /r Compare
CMP r8,r/m8 3A /r Compare
CMP r32,r/m32 3B /r Compare
CMPSB A6 Compare byte at DS:(E)SI with ES:(E)DI
CMPSD A7 Compare dw at DS:(E)SI with ES:(E)DI
CMPXCHG r/m8,r8 0F B0 /r Compare and Exchange
CMPXCHG r/m32,r32 0F B1 /r Compare and Exchange
CMPXCHG8B m64 0F C7 /1 m64 Compare and Exchange
CPUID 0F A2 EAX := Processor id.info.
DAA 27 Decimal adjust AL after addition
DAS 2F Decimal adjust AL after subtraction
DEC r/m8 FE /1 Decrement r/m8 by 1
DEC r/m32 FF /1 Decrement r/m32 by 1
DEC r32 48+rd Decrement r32 by 1
DIV r/m8 F6 /6 Unsigned divide AX by r/m8
DIV r/m16 F7 /6 Unsigned divide DX:AX by r/m16
DIV r/m32 F7 /6 Unsigned divide EDX:EAX by r/m32
EMMS 0F 77 Set the FP tag word to empty
ENTER imm16,0 C8 iw 00 Create a stack frame for a procedure
ENTER imm16,1 C8 iw 01 Create a nested stack frame for a proc.
ENTER imm16,imm8 C8 iw ib Create a nested stack frame for a proc.
F2XM1 D9 F0 Replace ST(0) with 2**ST(0) - 1
FABS D9 E1 Replace ST(0) with its absolute value
FADD m32real D8 /0 Add m32real to ST(0) and s.r. in ST(0)
FADD m64real DC /0 Add m64real to ST(0) and s.r.in ST(0)
FADD ST(0),ST(i) D8 C0+i Add ST(0) to ST(i) and s.r.in ST(0)
FADD ST(i),ST(0) DC C0+i Add ST(i) to ST(0) and s.r. in ST(i)
FADDP ST(i),ST(0) DE C0+i Add ST(0) to ST(i), s.r.in ST(i),pop r.stack
FADDP DE C1 Add ST(0) to ST(1), s.r.in ST(1),pop r.stack
FIADD m32int DA /0 Add m32int to ST(0) and s.r.in ST(0)
FIADD m16int DE /0 Add m16int to ST(0) and s.r.in ST(0)
FBLD m80bcd DF /4 Convert m80BCD to real and push
FBSTP m80bcd DF /6 Store ST(0) in m80bcd and pop ST(0)
FCHS D9 E0 Complements sign of ST(0)
FCLEX 9B DB E2 Clear f.e.f. after checking for ..
FNCLEX DB E2 Clear f.e.f. without checking for ..
FCMOVB ST(0),ST(i) DA C0+i Move if below
FCMOVE ST(0),ST(i) DA C8+i Move if equal
FCMOVBE ST(0),ST(i) DA D0+i Move if below or equal
FCMOVU ST(0),ST(i) DA D8+i Move if unordered
FCMOVNB ST(0),ST(i) DB C0+i Move if not below
FCMOVNE ST(0),ST(i) DB C8+i Move if not equal
FCMOVNBE ST(0),ST(i) DB D0+i Move if not below or equal
FCMOVNU ST(0),ST(i) DB D8+i Move if not unordered
FCOM m32real D8 /2 Compare ST(0) with m32real.
FCOM m64real DC /2 Compare ST(0) with m64real.
FCOM ST(i) D8 D0+i Compare ST(0) with ST(i).
FCOM D8 D1 Compare ST(0) with ST(1).
FCOMP m32real D8 /3 Compare ST(0) with m32real,pop r.stack.
FCOMP m64real DC /3 Compare ST(0) with m64real,pop r.stack.
FCOMP ST(i) D8 D8+i Compare ST(0) with ST(i), pop
FCOMP D8 D9 Compare ST(0) with ST(1), pop
FCOMPP DE D9 Compare ST(0) with ST(1), pop pop
FCOMI ST,ST(i) DB F0+i Compare ST(0) with ST(i), set status flags
FCOMIP ST,ST(i) DF F0+i Compare ST(0) with ST(i), set s.f. ,pop
FUCOMI ST,ST(i) DB E8+i Compare ST(0) with ST(i), check o.v.set s.f.
FUCOMIP ST,ST(i) DF E8+i Compare ST(0) with ST(i), check ovssf pop
FCOS D9 FF Replace ST(0) with its cosine
FDECSTP D9 F6 Decrement TOP field in FPU status word.
FDIV m32real D8 /6 Divide ST(0) by m32real and s.r.in ST(0)
FDIV m64real DC /6 Divide ST(0) by m64real and s.r.in ST(0)
FDIV ST(0),ST(i) D8 F0+i Divide ST(0) by ST(i) and s.r.in ST(0)
FDIV ST(i),ST(0) DC F8+i Divide ST(i) by ST(0) and s.r.in ST(i)
FDIVP ST(i),ST(0) DE F8+i Divide ST(i) by ST(0), s.r.in ST(i) pop
FDIVP DE F9 Divide ST(1) by ST(0), s.r.in ST(1) pop
FIDIV m32int DA /6 Divide ST(0) by m32int and s.r.in ST(0)
FIDIV m16int DE /6 Divide ST(0) by m64int and s.r.in ST(0)
FDIVR m32real D8 /7 Divide m32real by ST(0) and s.r.in ST(0)
FDIVR m64real DC /7 Divide m64real by ST(0) and s.r.in ST(0)
FDIVR ST(0),ST(i) D8 F8+i Divide ST(i) by ST(0) and s.r.in ST(0)
FDIVR ST(i),ST(0) DC F0+i Divide ST(0) by ST(i) and s.r.in ST(i)
FDIVRP ST(i),ST(0) DE F0+i Divide ST(0) by ST(i), s.r.in ST(i) pop
FDIVRP DE F1 Divide ST(0) by ST(1), s.r.in ST(1) pop
FIDIVR m32int DA /7 Divide m32int by ST(0) and s.r.in ST(0)
FIDIVR m16int DE /7 Divide m64int by ST(0) and s.r.in ST(0)
FFREE ST(i) DD C0+i Sets tag for ST(i) to empty
FICOM m16int DE /2 Compare ST(0) with m16int
FICOM m32int DA /2 Compare ST(0) with m32int
FICOMP m16int DE /3 Compare ST(0) with m16int and pop
FICOMP m32int DA /3 Compare ST(0) with m32int and pop
FILD m16int DF /0 Push m16int
FILD m32int DB /0 Push m32int
FILD m64int DF /5 Push m64int
FINCSTP D9 F7 Increment the TOP field FPU status r.
FINIT 9B DB E3 Initialize FPU after ...
FNINIT DB E3 Initialize FPU without ...
FIST m16int DF /2 Store ST(0) in m16int
FIST m32int DB /2 Store ST(0) in m32int
FISTP m16int DF /3 Store ST(0) in m16int and pop
FISTP m32int DB /3 Store ST(0) in m32int and pop
FISTP m64int DF /7 Store ST(0) in m64int and pop
FLD m32real D9 /0 Push m32real
FLD m64real DD /0 Push m64real
FLD m80real DB /5 Push m80real
FLD ST(i) D9 C0+i Push ST(i)
FLD1 D9 E8 Push +1.0
FLDL2T D9 E9 Push log2 10
FLDL2E D9 EA Push log2 e
FLDPI D9 EB Push pi
FLDLG2 D9 EC Push log10 2
FLDLN2 D9 ED Push loge 2
FLDZ D9 EE Push +0.0
FLDCW m2byte D9 /5 Load FPU control word from m2byte
FLDENV m14/28byte D9 /4 Load FPU environment from m14/m28
FMUL m32real D8 /1 Multiply ST(0) by m32real and s.r.in ST(0)
FMUL m64real DC /1 Multiply ST(0) by m64real and s.r.in ST(0)
FMUL ST(0),ST(i) D8 C8+i Multiply ST(0) by ST(i) and s.r.in ST(0)
FMUL ST(i),ST(0) DC C8+i Multiply ST(i) by ST(0) and s.r.in ST(i)
FMULP ST(i),ST(0) DE C8+i Multiply ST(i) by ST(0), s.r.in ST(i) pop
FMULP DE C9 Multiply ST(1) by ST(0), s.r.in ST(1) pop
FIMUL m32int DA /1 Multiply ST(0) by m32int and s.r.in ST(0)
FIMUL m16int DE /1 Multiply ST(0) by m16int and s.r.in ST(0)
FNOP D9 D0 No operation is performed
FPATAN D9 F3 Repalces ST(1) with arctan(ST(1)/ST(0)) pop
FPREM D9 F8 Replaces ST(0) with rem (ST(0)/ST(1))
FPREM1 D9 F5 Replaces ST(0) with IEEE rem(ST(0)/ST(1))
FPTAN D9 F2 Replaces ST(0) with its tangent push 1.0
FRNDINT D9 FC Round ST(0) to an integer
FRSTOR m94/108byte DD /4 Load FPU status from m94 or m108 byte
FSAVE m94/108byte 9B DD /6 Store FPU status to m94 or m108
FNSAVE m94/108byte DD /6 Store FPU environment to m94 or m108
FSCALE D9 FD Scale ST(0) by ST(1)
FSIN D9 FE Replace ST(0) with its sine
FSINCOS D9 FB Compute sine and consine of ST(0) s push c
FSQRT D9 FA square root of ST(0)
FST m32real D9 /2 Copy ST(0) to m32real
FST m64real DD /2 Copy ST(0) to m64real
FST ST(i) DD D0+i Copy ST(0) to ST(i)
FSTP m32real D9 /3 Copy ST(0) to m32real and pop
FSTP m64real DD /3 Copy ST(0) to m64real and pop
FSTP m80real DB /7 Copy ST(0) to m80real and pop
FSTP ST(i) DD D8+i Copy ST(0) to ST(i) and pop
FSTCW m2byte 9B D9 /7 Store FPU control word
FNSTCW m2byte D9 /7 Store FPU control word without
FSTENV m14/28byte 9B D9 /6 Store FPU environment
FNSTENV m14/28byte D9 /6 Store FPU env without
FSTSW m2byte 9B DD /7 Store FPU status word at m2byte after
FSTSW AX 9B DF E0 Store FPU status word in AX after
FNSTSW m2byte DD /7 Store FPU status word at m2byte without
FNSTSW AX DF E0 Store FPU status word in AX without
FSUB m32real D8 /4 Sub m32real from ST(0) and s.r.in ST(0)
FSUB m64real DC /4 Sub m64real from ST(0) and s.r.in ST(0)
FSUB ST(0),ST(i) D8 E0+i Sub ST(i) from ST(0) and s.r.in ST(0)
FSUB ST(i),ST(0) DC E8+i Sub ST(0) from ST(i) and s.r.in ST(i)
FSUBP ST(i),ST(0) DE E8+i Sub ST(0) from ST(i), s.r.in ST(i) pop
FSUBP DE E9 Sub ST(0) from ST(1), s.r.in ST(1) pop
FISUB m32int DA /4 Sub m32int from ST(0) and s.r.in ST(0)
FISUB m16int DE /4 Sub m16int from ST(0) and s.r.in ST(0)
FSUBR m32real D8 /5 Sub ST(0) from m32real and s.r.in ST(0)
FSUBR m64real DC /5 Sub ST(0) from m64real and s.r.in ST(0)
FSUBR ST(0),ST(i) D8 E8+i Sub ST(0) from ST(i) and s.r.in ST(0)
FSUBR ST(i),ST(0) DC E0+i Sub ST(i) from ST(0) and s.r.in ST(i)
FSUBRP ST(i),ST(0) DE E0+i Sub ST(i) from ST(0), s.r. in ST(i) pop
FSUBRP DE E1 Sub ST(1) from ST(0), s.r.in ST(1) pop
FISUBR m32int DA /5 Sub ST(0) from m32int and s.r.in ST(0)
FISUBR m16int DE /5 Sub ST(0) from m16int and s.r.in ST(0)
FTST D9 E4 Compare ST(0) with 0.0
FUCOM ST(i) DD E0+i Compare ST(0) with ST(i)
FUCOM DD E1 Compare ST(0) with ST(1)
FUCOMP ST(i) DD E8+i Compare ST(0) with ST(i) and pop
FUCOMP DD E9 Compare ST(0) with ST(1) and pop
FUCOMPP DA E9 Compare ST(0) with ST(1) and pop pop
FXAM D9 E5 Classify value or number in ST(0)
FXCH ST(i) D9 C8+i Exchange ST(0) and ST(i)
FXCH D9 C9 Exchange ST(0) and ST(1)
FXTRACT D9 F4 Seperate value in ST(0) exp. and sig.
FYL2X D9 F1 Replace ST(1) with ST(1)*log2ST(0) and pop
FYL2XP1 D9 F9 Replace ST(1) with ST(1)*log2(ST(0)+1) pop
HLT F4 Halt
IDIV r/m8 F6 /7 Divide
IDIV r/m32 F7 /7 Divide
IMUL r/m8 F6 /5 Multiply
IMUL r/m32 F7 /5 Multiply
IMUL r32,r/m32 0F AF /r Multiply
IMUL r32,r/m32,imm8 6B /r ib Multiply
IMUL r32,imm8 6B /r ib Multiply
IMUL r32,r/m32,imm32 69 /r id Multiply
IMUL r32,imm32 69 /r id Multiply
IN AL,imm8 E4 ib Input byte from imm8 I/O port address into AL
IN EAX,imm8 E5 ib Input byte from imm8 I/O port address into EAX
IN AL,DX EC Input byte from I/O port in DX into AL
IN EAX,DX ED Input doubleword from I/O port in DX into EAX
INC r/m8 FE /0 Increment 1
INC r/m32 FF /0 Increment 1
INC r32 40+rd Increment register by 1
INS m8 6C Input byte from I/O(DX) into ES:(E)DI
INS m32 6D Input dw from I/O(DX) into ES:(E)DI
INT 3 CC Interrupt 3--trap to debugger
INT imm8 CD ib Interrupt vector number (imm8)
INTO CE Interrupt 4--if overflow flag is 1
INVD 0F 08 Flush internal caches
INVLPG m 0F 01 /7 Invalidate TLB Entry for page (m)
IRETD CF Interrupt return(32)
JA rel8 77 cb Jump short if above
JAE rel8 73 cb Jump short if above or equal
JBE rel8 76 cb Jump short if below or equal
JC rel8 72 cb Jump short if carry
JECXZ rel8 E3 cb Jump short if ECX register is 0
JE rel8 74 cb Jump short if equal
JG rel8 7F cb Jump short if greater
JGE rel8 7D cb Jump short if greater or equal
JL rel8 7C cb Jump short if less
JLE rel8 7E cb Jump short if less or equal
JNE rel8 75 cb Jump short if not equal
JNO rel8 71 cb Jump short if not overflow
JNS rel8 79 cb Jump short if not sign
JO rel8 70 cb Jump short if overflow
JPE rel8 7A cb Jump short if parity even
JPO rel8 7B cb Jump short if parity odd
JS rel8 78 cb Jump short if sign
JA rel32 0F 87 cd Jump near if above
JAE rel32 0F 83 cd Jump near if above or equal
JB rel32 0F 82 cd Jump near if below
JBE rel32 0F 86 cd Jump near if below or equal
JE rel32 0F 84 cd Jump near if equal
JG rel32 0F 8F cd Jump near if greater
JGE rel32 0F 8D cd Jump near if greater or equal
JL rel32 0F 8C cd Jump near if less
JLE rel32 0F 8E cd Jump near if less or equal
JNE rel32 0F 85 cd Jump near if not equal
JNO rel32 0F 81 cd Jump near if not overflow
JNS rel32 0F 89 cd Jump near if not sign
JO rel32 0F 80 cd Jump near if overflow
JPE rel32 0F 8A cd Jump near if parity even
JPO rel32 0F 8B cd Jump near if parity odd
JS rel32 0F 88 cd Jump near if sign
JMP rel8 EB cb Jump short, relative,
JMP rel32 E9 cd Jump near, relative,
JMP r/m32 FF /4 Jump near, abs.ind.in r/m32
JMP ptr16:32 EA cp Jump far, abs.add given in operand
JMP m16:32 FF /r Jump far, abs.ind.in m16:32