Logo
Articles Compilers Libraries Books MiniBooklets Assembly C++ Linux Others Videos
Advertisement

Article by Ayman Alheraki on January 11 2026 10:37 AM

x86-64_Instructions

x86-64 Legacy Instructions

This table lists core legacy x86-64 assembly instructions with their machine code and encoding details.

MnemonicOpcodeEncodingOperandsModR/MSIBDescription
MOV89 /rLegacyreg, reg/memYesOptionalMove data between registers or memory
ADD01 /rLegacyreg, reg/memYesOptionalAdd two operands
SUB29 /rLegacyreg, reg/memYesOptionalSubtract source from destination
MULF7 /4Legacyreg/memYesOptionalUnsigned multiply (EAX * operand)
DIVF7 /6Legacyreg/memYesOptionalUnsigned divide (EDX:EAX / operand)
INCFF /0Legacyreg/memYesOptionalIncrement operand by 1
DECFF /1Legacyreg/memYesOptionalDecrement operand by 1
PUSH50+rd / FF /6Legacyreg / reg/memYesOptionalPush value onto stack
POP58+rd / 8F /0Legacyreg / reg/memYesOptionalPop value from stack
CMP39 /rLegacyreg, reg/memYesOptionalCompare two operands

 

x86-64 SIMD Instructions (SSE / AVX / AVX2 / AVX-512)

This table lists key SIMD instructions using various vector extensions in x86-64, from SSE to AVX-512.

MnemonicOpcodeEncodingOperandsISA SetDescription
ADDPS0F 58 /rLegacyxmm, xmm/m128SSEAdd packed single-precision floating-point values
ADDPD66 0F 58 /rLegacyxmm, xmm/m128SSE2Add packed double-precision floating-point values
VADDPSC5 F8 58 /rVEXymm, ymm, ymm/m256AVXAdd packed single-precision floats (256-bit)
VADDPDC5 F9 58 /rVEXymm, ymm, ymm/m256AVXAdd packed double-precision floats (256-bit)
VPADDQ66 0F D4 /rVEXxmm, xmm, xmm/m128AVX2Add packed quadword integers
VMULPSC5 F8 59 /rVEXymm, ymm, ymm/m256AVXMultiply packed single-precision floats
VFMADD231PSC4 E2 7D B8 /rVEXymm, ymm, ymm/m256FMA3Fused multiply-add packed single-precision floats
VBROADCASTSSC4 E2 7D 18 /rVEXymm, m32AVX2Broadcast one float across ymm
VZEROALLC5 F8 77VEXAVXZero all YMM registers
VANDPSC5 F4 54 /rVEXymm, ymm, ymm/m256AVXBitwise AND of packed floats

 

x86-64 AVX-512 AI Instructions (VNNI / AMX / BF16)

This table includes instructions used for AI workloads such as vector dot products, BF16 conversion, and AMX tile operations.

MnemonicOpcodeEncodingOperandsISA SetDescription
VPDPBUSD62 F2 ED 48 50 /rEVEXzmm, zmm, zmm/m512AVX-512 VNNIMultiply groups of unsigned/signed bytes and accumulate into dwords
VPDPBUSDS62 F2 ED 48 51 /rEVEXzmm, zmm, zmm/m512AVX-512 VNNIMultiply-add with saturation
VPDPWSSD62 F2 ED 48 52 /rEVEXzmm, zmm, zmm/m512AVX-512 VNNIMultiply signed word integers and accumulate
VPDPWSSDS62 F2 ED 48 53 /rEVEXzmm, zmm, zmm/m512AVX-512 VNNIMultiply signed word integers with saturation and accumulate
VP4DPWSSDS62 F2 ED 48 54 /rEVEXzmm, zmm, zmm/m512AVX-512 VNNI4-dot-product with saturation
TILELOADDC4 E2 7B 49AMXtmm, memAMXLoad tile configuration from memory
TDPBSSDC4 E2 7B 5AAMXtmm, tmm, tmmAMXTile dot-product of signed bytes and signed bytes into dwords
VCVTNE2PS2BF1662 F2 7D 48 72 /rEVEXzmm, zmm, zmm/m512AVX-512 BF16Convert packed single-precision to BF16 with rounding
VCVTNEPS2BF1662 F2 7D 48 72 /rEVEXymm, zmm/m512AVX-512 BF16Convert packed single-precision to BF16
VCVTPH2PS62 F1 7D 48 13 /rEVEXzmm, ymm/m256 {1to16}AVX-512 FP16Convert half-precision to single-precision

 

 

Advertisements

Responsive Counter
General Counter
1001619
Daily Counter
819