x86 Instructions
957 instructions - showing 100 per page, page 7 of 10 - click any row to view encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Extension | Summary |
|---|---|---|---|---|
| seto | SETO r/m8 | Legacy | Base | Sets byte to 1 if OF=1. |
| setp | SETP r/m8 | Legacy | Base | Sets byte to 1 if PF=1 (Even Parity). |
| sets | SETS r/m8 | Legacy | Base | Sets byte to 1 if SF=1 (Negative). |
| setz | SETZ r/m8 | Legacy | Base | Sets byte to 1 if ZF=1. |
| sfence | SFENCE | SSE | SSE | Serializes store operations (Wait for prior stores to complete). |
| sgdt | SGDT m | System | System | Stores GDT limit and base address to memory. |
| sha1msg1 | SHA1MSG1 xmm1, xmm2/m128 | Legacy | SHA | Performs intermediate calculation for SHA1 message schedule. |
| sha1msg2 | SHA1MSG2 xmm1, xmm2/m128 | Legacy | SHA | Performs final calculation for SHA1 message schedule. |
| sha1nexte | SHA1NEXTE xmm1, xmm2/m128 | Legacy | SHA | Calculates SHA1 state variable E. |
| sha1rnds4 | SHA1RNDS4 xmm1, xmm2/m128, imm8 | Legacy | SHA | Performs 4 rounds of SHA1 operation. |
| sha256msg1 | SHA256MSG1 xmm1, xmm2/m128 | Legacy | SHA | Performs intermediate calculation for SHA256 message schedule. |
| sha256msg2 | SHA256MSG2 xmm1, xmm2/m128 | Legacy | SHA | Performs final calculation for SHA256 message schedule. |
| sha256rnds2 | SHA256RNDS2 xmm1, xmm2/m128, xmm0 | Legacy | SHA | Performs 2 rounds of SHA256 operation. |
| shl | SHL r/m, imm8 | Legacy | Base | Shifts bits left (same as SAL). |
| shld | SHLD r/m, r, imm8 | Legacy | Base | Shifts dest left, filling with bits from src. |
| shlx | SHLX r32, r/m32, r32 | VEX | BMI2 | Logical left shift, count in register. No flags update. |
| shr | SHR r/m, imm8 | Legacy | Base | Shifts bits right, filling with zeros. |
| shrd | SHRD r/m, r, imm8 | Legacy | Base | Shifts dest right, filling with bits from src. |
| shrx | SHRX r32, r/m32, r32 | VEX | BMI2 | Logical right shift, count in register. No flags update. |
| shufpd | SHUFPD xmm1, xmm2/m128, imm8 | SSE2 | SSE2 | Shuffles 64-bit doubles between two XMM registers. |
| shufps | SHUFPS xmm1, xmm2/m128, imm8 | SSE | SSE | Shuffles 32-bit floats between two XMM registers. |
| sidt | SIDT m | System | System | Stores IDT limit and base address to memory. |
| sldt | SLDT r/m16 | System | System | Stores LDT segment selector. |
| smsw | SMSW r/m16 | System | System | Stores Machine Status Word. |
| sqrtpd | SQRTPD xmm, xmm/m128 | SSE2 | SSE2 | Computes square root of two 64-bit doubles. |
| sqrtps | SQRTPS xmm, xmm/m128 | SSE | SSE | Computes square root of four 32-bit floats. |
| sqrtsd | SQRTSD xmm1, xmm2/m64 | SSE2 | SSE2 | Computes square root of the low double. |
| sqrtss | SQRTSS xmm1, xmm2/m32 | SSE | SSE | Computes square root of the low float. |
| stac | STAC | Legacy | SMAP | Sets Alignment Check flag (Allow user memory access). |
| stc | STC | Legacy | Base | Sets the CF flag to 1. |
| std | STD | Legacy | Base | Sets DF to 1 (String operations decrement). |
| stgi | STGI | SVM | SVM | Enables global interrupts (AMD SVM). |
| sti | STI | Legacy | Base | Enables maskable hardware interrupts. |
| stmxcsr | STMXCSR m32 | SSE | SSE | Stores the MXCSR register to memory. |
| stos | STOSB | Legacy | Base | Stores AL/AX/EAX to memory at [EDI]. |
| stosd | STOSD | Legacy | Base | Stores EAX to memory at [EDI]. |
| stosq | STOSQ | Legacy | Base (64-bit) | Stores RAX to memory at [RDI]. |
| stosw | STOSW | Legacy | Base | Stores AX to memory at [EDI]. |
| str | STR r/m16 | System | System | Stores Task Register. |
| sttilecfg | STTILECFG m512 | VEX | AMX-TILE | Stores AMX tile configuration to memory. |
| stui | STUI | Legacy | UINTR | Sets the User Interrupt Flag (UIF). |
| sub | SUB r/m, r | Legacy | Base | Subtracts src from dest. |
| subpd | SUBPD xmm, xmm/m128 | SSE2 | SSE2 | Subtracts two 64-bit doubles. |
| subps | SUBPS xmm, xmm/m128 | SSE | SSE | Subtracts four 32-bit floats. |
| subsd | SUBSD xmm1, xmm2/m64 | SSE2 | SSE2 | Subtracts the low double-precision floating-point value. |
| subss | SUBSS xmm1, xmm2/m32 | SSE | SSE | Subtracts the low single-precision floating-point value. |
| swapgs | SWAPGS | Legacy | Base (64-bit System) | Swaps user/kernel GS base address (System). |
| syscall | SYSCALL | System | System (64-bit) | Fast call to privilege level 0 system procedures. |
| sysenter | SYSENTER | System | System | Fast call to level 0 system procedures. |
| sysexit | SYSEXIT | System | System | Fast return to level 3 user code. |
| sysret | SYSRET | System | System (64-bit) | Fast return to privilege level 3 user code. |
| t1mskc | T1MSKC r32, r/m32 | TBM | TBM | Creates mask from trailing ones (~x | (x+1)). |
| tdpbf16ps | TDPBF16PS tmm1, tmm2, tmm3 | VEX | AMX-BF16 | Matrix multiply (BFloat16) accumulating to Float32. |
| tdpbssd | TDPBSSD tmm1, tmm2, tmm3 | VEX | AMX-INT8 | Matrix multiply (Signed Int8 * Signed Int8) accumulating to Int32. |
| tdpbsud | TDPBSUD tmm1, tmm2, tmm3 | VEX | AMX-INT8 | Matrix multiply (Signed * Unsigned) accumulating to Int32. |
| tdpbusd | TDPBUSD tmm1, tmm2, tmm3 | VEX | AMX-INT8 | Matrix multiply (Unsigned * Signed) accumulating to Int32. |
| tdpbuud | TDPBUUD tmm1, tmm2, tmm3 | VEX | AMX-INT8 | Matrix multiply (Unsigned * Unsigned) accumulating to Int32. |
| tdpfp16ps | TDPFP16PS tmm1, tmm2, tmm3 | VEX | AMX-FP16 | Matrix multiply (FP16 * FP16) accumulating to Float32. |
| test | TEST r/m, r | Legacy | Base | ANDs operands and updates flags (result discarded). |
| testui | TESTUI | Legacy | UINTR | Sets CF if UIF is 1, ZF if User Interrupt Pending. |
| tileloadd | TILELOADD tmm1, m | VEX | AMX-TILE | Loads data into an AMX tile register. |
| tileloaddt1 | TILELOADDT1 tmm1, m | VEX | AMX-TILE | Loads data into an AMX tile register with T1 hint. |
| tilestored | TILESTORED m, tmm1 | VEX | AMX-TILE | Stores data from an AMX tile register to memory. |
| tilezero | TILEZERO tmm1 | VEX | AMX-TILE | Clears an AMX tile register. |
| tpause | TPAUSE r32 | Legacy | WAITPKG | Pauses execution for a specified time or until trigger. |
| tzcnt | TZCNT r32, r/m32 | Legacy | BMI1 | Counts the number of trailing zeros. |
| tzmsk | TZMSK r32, r/m32 | TBM | TBM | Creates mask from trailing zeros (~x & (x-1)). |
| ucomisd | UCOMISD xmm1, xmm2/m64 | SSE2 | SSE2 | Compares low double and sets EFLAGS. |
| ucomiss | UCOMISS xmm1, xmm2/m32 | SSE | SSE | Compares low float and sets EFLAGS. |
| ud0 | UD0 | Legacy | Base | Generates invalid opcode exception. |
| ud2 | UD2 | Legacy | Base | Generates an invalid opcode exception. |
| uiret | UIRET | Legacy | UINTR | Returns from a User Interrupt handler. |
| umonitor | UMONITOR r64 | Legacy | WAITPKG | Sets up a monitor address for User Wait instructions. |
| umwait | UMWAIT r32 | Legacy | WAITPKG | Waits for store to monitored address (Low power state). |
| unpckhpd | UNPCKHPD xmm1, xmm2/m128 | SSE2 | SSE2 | Interleaves high doubles from two sources. |
| unpckhps | UNPCKHPS xmm1, xmm2/m128 | SSE | SSE | Interleaves high floats from two registers. |
| unpcklpd | UNPCKLPD xmm1, xmm2/m128 | SSE2 | SSE2 | Interleaves low doubles from two sources. |
| unpcklps | UNPCKLPS xmm1, xmm2/m128 | SSE | SSE | Interleaves low floats from two registers. |
| v4fmaddps | V4FMADDPS zmm1 {k1}, zmm2+3, m128 | EVEX | AVX-512-4FMAPS | 4-way FMA for Neural Nets (Single). |
| v4fmaddss | V4FMADDSS xmm1 {k1}, xmm2+3, m128 | EVEX | AVX-512-4FMAPS | 4-way FMA for Neural Nets (Scalar). |
| v4fnmaddps | V4FNMADDPS zmm1 {k1}, zmm2+3, m128 | EVEX | AVX-512-4FMAPS | 4-way Negative FMA for Neural Nets (Single). |
| v4fnmaddss | V4FNMADDSS xmm1 {k1}, xmm2+3, m128 | EVEX | AVX-512-4FMAPS | 4-way Negative FMA for Neural Nets (Scalar). |
| vaddph | VADDPH zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-FP16 | Adds half-precision floating-point values. |
| vaddps | VADDPS ymm1, ymm2, ymm3/m256 | VEX | AVX | Adds packed floats (256-bit YMM support). |
| vaddsh | VADDSH xmm1 {k1}, xmm2, xmm3/m16 | EVEX | AVX-512-FP16 | Adds low FP16 value. |
| vaddss | VADDSS xmm1 {k1}, xmm2, xmm3/m32 | EVEX | AVX-512F | Adds scalar single precision (EVEX encoded with masking). |
| vaesdec | VAESDEC zmm1, zmm2, zmm3/m512 | EVEX | AVX-512-VAES | AES Decrypt on 512-bit vector. |
| vaesenc | VAESENC zmm1, zmm2, zmm3/m512 | EVEX | AVX-512-VAES | AES Encrypt on 512-bit vector. |
| valignd | VALIGND zmm1 {k1}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512F | Extracts 512-bits from two concatenated ZMMs shifted by count. |
| valignq | VALIGNQ zmm1 {k1}, zmm2, zmm3/m512, imm8 | EVEX | AVX-512F | Extracts 512-bits from two concatenated ZMMs shifted by count. |
| vbroadcastf128 | VBROADCASTF128 ymm1, m128 | VEX | AVX | Broadcasts 128-bit FP block to YMM. |
| vbroadcasti128 | VBROADCASTI128 ymm1, m128 | VEX | AVX2 | Broadcasts 128-bit integer block to YMM. |
| vbroadcastsd | VBROADCASTSD ymm1, m64 | VEX | AVX2 | Broadcasts a double to all elements of YMM. |
| vbroadcastss | VBROADCASTSS ymm1, m32 | AVX | AVX | Loads one float and replicates it to all YMM elements. |
| vcmppd | VCMPPD ymm1, ymm2, ymm3/m256, imm8 | VEX | AVX | Compares packed doubles (AVX version with immediate). |
| vcmpps | VCMPPS ymm1, ymm2, ymm3/m256, imm8 | VEX | AVX | Compares packed floats (AVX version with immediate). |
| vcompresspd | VCOMPRESSPD m512 {k1}, zmm1 | EVEX | AVX-512F | Compresses active elements from ZMM to memory. |
| vcompressps | VCOMPRESSPS m512 {k1}, zmm1 | EVEX | AVX-512F | Compresses active elements from ZMM to memory. |
| vcvtdq2ps | VCVTDQ2PS ymm1, ymm2/m256 | VEX | AVX | Converts four 32-bit integers to floats. |
| vcvtne2ps2bf16 | VCVTNE2PS2BF16 zmm1 {k1}, zmm2, zmm3/m512 | EVEX | AVX-512-BF16 | Converts two float vectors to one BFloat16 vector. |