Browse instructions

A curated reference for x86-64 and AArch64 instructions. Search by mnemonic, intrinsic name, or operation, then open a family for its interactive explorer, pseudocode, and intrinsics.

Filters
Reference index
ArithmeticADDADD r32_dst, r32_srcADD32/64Integer additionPADDBPADDB xmm1, xmm2ADD128/256Add bytesInteractive explorerPADDDPADDD xmm1, xmm2128/256Add 32-bit elementsPADDUSBPADDUSB xmm1, xmm2UQADD128/256Add unsigned bytes with saturationInteractive explorerPADDWPADDW xmm1, xmm2128/256Add 16-bit elementsPMULLDPMULLD xmm1, xmm2MUL128/256Multiply low 32-bit elementsPMULLWPMULLW xmm1, xmm2MUL128/256Multiply low 16-bit elementsPSUBBPSUBB xmm1, xmm2SUB128/256Subtract bytesInteractive explorerPSUBDPSUBD xmm1, xmm2128/256Subtract 32-bit elementsPSUBWPSUBW xmm1, xmm2128/256Subtract 16-bit elementsSUBSUB r32_dst, r32_srcSUB32/64Integer subtractionCompareCMOVBCMOVB r32_dst, r32_src32/64Move if unsigned belowCMOVLCMOVL r32_dst, r32_src32/64Move if signed lessCMOVNBCMOVNB r32_dst, r32_src32/64Move if unsigned above or equalCMOVNLCMOVNL r32_dst, r32_src32/64Move if signed greater or equalCMOVNZCMOVNZ r32_dst, r32_src32/64Move if not equal / nonzeroCMOVZCMOVZ r32_dst, r32_src32/64Move if equal / zeroCMPCMP r32_dst, r32_srcSUBS32/64Compare integersPCMPEQBPCMPEQB xmm1, xmm2128/256Compare bytes for equalityInteractive explorerPCMPEQDPCMPEQD xmm1, xmm2CMEQ128/256Compare equal 32-bit elementsPCMPEQWPCMPEQW xmm1, xmm2CMEQ128/256Compare equal 16-bit elementsPCMPGTDPCMPGTD xmm1, xmm2CMGT128/256Compare signed greater 32-bit elementsPCMPGTWPCMPGTW xmm1, xmm2CMGT128/256Compare signed greater 16-bit elementsSETBSETB r88Set byte if unsigned belowSETLSETL r88Set byte if signed lessSETNBSETNB r88Set byte if unsigned above or equalSETNLSETNL r88Set byte if signed greater or equalSETNZSETNZ r88Set byte if not equal / nonzeroSETZSETZ r88Set byte if equal / zeroTESTTEST r32_dst, r32_src32/64Test bitsControl flowCALLCALL rel3264Call a near targetJBJB rel8Branch if unsigned belowJLJL rel8Branch if signed lessJMPJMP rel864Jump to a targetJNBJNB rel8Branch if unsigned above or equalJNLJNL rel8Branch if signed greater or equalJNZJNZ rel8Branch if not equal / nonzeroJZJZ rel8Branch if equal / zeroRETRET64Return to the callerConvertMOVSXMOVSX r32, r832/64Move with sign extensionMOVSXDMOVSXD r64, r3264Move with sign extensionMOVZXMOVZX r32, r832/64Move with zero extensionPACKSSDWPACKSSDW xmm1, xmm2SQXTN128/256Pack to signed 16-bit elements with saturationPACKSSWBPACKSSWB xmm1, xmm2SQXTN128/256Pack to signed 8-bit elements with saturationPACKUSWBPACKUSWB xmm1, xmm2128/256Pack signed words into unsigned bytesPMOVSXBWPMOVSXBW xmm1, xmm2SSHLL128/256Widen bytes to words with sign extensionPMOVZXBWPMOVZXBW xmm1, xmm2USHLL128/256Widen bytes to words with zero extensionFloating pointADDPDADDPD xmm1, xmm2FADD128/256Add packed 64-bit floating-point valuesADDPSADDPS xmm1, xmm2FADD128/256Add packed 32-bit floating-point valuesDIVPDDIVPD xmm1, xmm2FDIV128/256Divide packed 64-bit floating-point valuesDIVPSDIVPS xmm1, xmm2FDIV128/256Divide packed 32-bit floating-point valuesMULPDMULPD xmm1, xmm2FMUL128/256Multiply packed 64-bit floating-point valuesMULPSMULPS xmm1, xmm2FMUL128/256Multiply packed 32-bit floating-point valuesSUBPDSUBPD xmm1, xmm2FSUB128/256Subtract packed 64-bit floating-point valuesSUBPSSUBPS xmm1, xmm2FSUB128/256Subtract packed 32-bit floating-point valuesLogicANDAND r32_dst, r32_src32/64Bitwise ANDOROR r32_dst, r32_src32/64Bitwise ORXORXOR r32_dst, r32_src32/64Bitwise exclusive ORLogicalPANDPAND xmm1, xmm2AND128/256Bitwise ANDInteractive explorerPORPOR xmm1, xmm2ORR128/256Bitwise ORInteractive explorerPXORPXOR xmm1, xmm2EOR128/256Bitwise exclusive ORInteractive explorerMemoryLEALEA r32_dst, [base64 + index64*scale + disp]32/64Compute an effective addressMoveMOVMOV r32_dst, r32_src32/64Copy dataRearrangePSHUFBPSHUFB xmm1, xmm2TBL128/256Shuffle bytesInteractive explorerPSHUFDPSHUFD xmm1, xmm2, imm8128/256Shuffle 32-bit elementsInteractive explorerPUNPCKHBWPUNPCKHBW xmm1, xmm2ZIP2128/256Interleave high bytesInteractive explorerPUNPCKLBWPUNPCKLBW xmm1, xmm2ZIP1128/256Interleave low bytesInteractive explorerShiftPSLLWPSLLW xmm, imm8SHL128/256Shift 16-bit elements leftInteractive explorerPSRLWPSRLW xmm, imm8USHR128/256Shift 16-bit elements rightInteractive explorer