x86 Mnemonics

This is a list of most of the instructions available in the x86-64 instruction set architecture.

The following table shows most of the available instructions, using the instruction names as specified in the Intel syntax. Not every processor supports every instruction, of course.

The vertical bar means OR, the square brackets mean OPTIONAL, and parentheses are used for grouping.

INTEGER FLOATING-POINT SSE SSE2
MOV
CMOV[N]((L|G|A|B)[E]|E|Z|S|C|O|P)
XCHG
BSWAP
XADD
CMPXCHG[8B]
PUSH[A[D]] | POP[A[D]]
IN | OUT
CBW | CWDE | CWD | CDQ
MOVSX | MOVZX

ADD | ADC
SUB | SBB
[I]MUL
[I]DIV
INC | DEC
NEG
CMP

DAA | DAS
AAA | AAS | AAM | AAD

AND | OR | XOR | NOT

SH(L|R)[D]
SA(L|R)
RO(L|R)
RC(L|R)

BT[S|R|C]
BS(F|R)
SET[N]((L|G|A|B)[E]|E|Z|S|C|O|P)
TEST

JMP
J[N]((L|G|A|B)[E]|E|Z|S|C|O|P)
J[E]CXZ
LOOP[N][Z|E]
CALL | RET
INT[O] | IRET
ENTER | LEAVE
BOUND

MOVS[B|W|D]
CMPS[B|W|D]
SCAS[B|W|D]
LODS[B|W|D]
STOS[B|W|D]
INS[B|W|D]
OUTS[B|W|D]
REP[N][Z|E]

STC | CLC | CMC
STD | CLD
STI | CLI
LAHF | SAHF
PUSHF[D] | POPF[D]

LDS | LES | LFS | LGS | LSS

LEA
NOP
UD2
XLAT[B]
CPUID
F[I]LD
F[I]ST[P]
FBLD
FBSTP
FXCH
FCMOV[N](E|B|BE|U)

FADD[P]
FIADD
FSUB[R][P]
FISUB[R]
FMUL[P]
FIMUL
FDIV[R][P]
FIDIV[R]
FPREM[1]
FABS
FCHS
FRNDINT
FSCALE
FSQRT
FXTRACT

F[U]COM[P][P]
FICOM[P]
F[U]COMI[P]
FTST
FXAM

FSIN
FCOS
FSINCOS
FPTAN
FPATAN
F2XM1
FYL2X
FYL2XP1

FLD1
FLDZ
FLDPI
FLDL2E
FLDLN2
FLDL2T
FLDLG2

FINCSTP
FDECSTP
FFREE
F[N]INIT
F[N]CLEX
F[N]STCW
FLDCW
F[N]STENV
FLDENV
F[N]SAVE
FRSTOR
F[N]STSW
FWAIT | WAIT
FNOP

FXSAVE
FXRSTOR
MOV(A|U)PS
MOV(H|HL|L|LH)PS
MOVSS
MOVMSKPS

ADD(P|S)S
SUB(P|S)S
MUL(P|S)S
DIV(P|S)S
RCP(P|S)S
SQRT(P|S)S
RSQRT(P|S)S
MAX(P|S)S
MIN(P|S)S

CMP(P|S)S
[U]COMISS

ANDPS
ANDNPS
ORPS
XORPS

SHUFPS
UNPCK(H|L)PS

CVTPI2PS
CVT[T]PS2PI
CVTSI2SS
CVT[T]SS2SI

PAVG(B|W)
PEXTRW
PINSRW
P(MIN|MAX)(UB|SW)
PMOVMSKB
PMULHUW
PSADBW
PSHUFW

LDMXCSR
STMXCSR

MASKMOVQ
MOVNT(Q|PS)
PREFETCH(T0|T1|T2|NTA)
SFENCE
MOV(A|U)PD
MOV(H|L)PD
MOVSD
MOVMSKPD

ADD(P|S)D
SUB(P|S)D
MUL(P|S)D
DIV(P|S)D
SQRT(P|S)D
MAX(P|S)D
MIN(P|S)D

CMP(P|S)D
[U]COMISD

ANDPD
ANDNPD
ORPD
XORPD

SHUFPD
UNPCK(H|L)PD

CVT(PI|DQ)2PD
CVT[T]PD2(PI|DQ)
CVTSI2SD
CVT[T]SD2SI
CVTPS2PD
CVTPD2PS
CVTDQ2PS
CVT[T]PS2DQ
CVTSS2SD
CVTSD2SS

MOVDQ(A|U)
MOVQ2DQ
MOVDQ2Q
PUNPCK(H|L)QDQ
PADDQ
PSUBQ
PMULUDQ
PSHUF(LW|HW|D)
PS(L|R)LDQ

MASKMOVDQU
MOVNT(PD|DQ|I)
CLFLUSH
LFENCE
MFENCE
PAUSE
SYSTEM MMX SSE3 SSE4
LGDT | SGDT
LLDT | SLDT
LTR | STR
LIDT | SIDT
LMSW | SMSW
CLTS
ARPL
LAR
LSL
VERR | VERW
INVD | WBINVD
INVLPG
LOCK
HLT
RSM
RDMSR | WRMSR
RDPMC
RDTSC
SYSENTER
SYSEXIT
MOVD
MOVQ

PACKSS(WB|DW)
PACKUSWB
PUNPCK(H|L)(BW|WD|DQ)

PADD(B|W|D)
PADD(S|US)(B|W)
PSUB(B|W|D)
PSUB(S|US)(B|W)
PMUL(H|L)W
PMADDWD
PCMP(EQ|GT)(B|W|D)

PAND
PANDN
POR
PXOR

PS(L|R)L(W|D|Q)
PSRA(W|D)

EMMS
FISTTP

LDDQU

ADDSUBP(S|D)

HADDP(S|D)
HSUBP(S|D)

MOVS(H|L)DUP
MOVDDUP

MONITOR
MWAIT
PMUL(LD|DQ)
DPP(D|S)

MOVNTDQA

BLEND[V](PD|PS)
PBLEND(VB|W)

PMIN(UW|UD|SB|SD)
PMAX(UW|UD|SB|SD)

ROUND(P|S)(S|D)

EXTRACTPS
INSERTPS
PINSR(B|D|Q)
PEXTR(B|W|D|Q)
PMOV(S|Z)X(BW|BD|WD|BQ|WQ|DQ)

MPSADBW

PHMINPOSUW

PTEST

PCMPEQQ
PACKUSDW

PCMP(E|I)STR(I|M)
PCMPGTQ

CRC32
POPCNT
64-BIT MODE VIRTUAL MACHINE SSSE3 AESNI
CDQE
CMPSQ
CMPXCHG16B
LODSQ
MOVSQ
MOVZX
STOSQ
SWAPGS
SYSCALL
SYSRET
VMPTRLD
VPTRST
VMCLEAR
VMREAD
VMWRITE
VMCALL
VMLAUNCH
VMRESUME
VMXOFF
VMXON
INVEPT
INVVPID
(Not done yet)
AESDEC[LAST]
AESENC[LAST]
AESIMC
AESKEYGENASSIST
PCLMULQDQ