x86 Instructions
957 instructions - showing 100 per page, page 1 of 10 - click any row to view encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Extension | Summary |
|---|---|---|---|---|
| aaa | AAA | Legacy | Base (Legacy) | Adjusts AL after addition for unpacked BCD. |
| aad | AAD imm8 | Legacy | Base (Legacy) | Adjusts AX before division for unpacked BCD. |
| aadd | AADD m32, r32 | VEX | RAO-INT | Atomically adds a value to a remote memory location. |
| aam | AAM imm8 | Legacy | Base (Legacy) | Adjusts AX after multiply for unpacked BCD. |
| aand | AAND m32, r32 | VEX | RAO-INT | Atomically ANDs a value to a remote memory location. |
| aas | AAS | Legacy | Base (Legacy) | Adjusts AL after subtraction for unpacked BCD. |
| adc | ADC r/m, r | Legacy | Base | Adds operands and the Carry Flag (CF). |
| adcx | ADCX r32, r/m32 | Legacy | ADX | Adds with Carry Flag (distinct from ADC, affects CF only). |
| add | ADD r/m, r | Legacy | Base | Adds src to dest and stores result in dest. |
| addpd | ADDPD xmm, xmm/m128 | SSE2 | SSE2 | Adds two 64-bit doubles. |
| addps | ADDPS xmm, xmm/m128 | SSE | SSE | Adds four 32-bit floats. |
| addsd | ADDSD xmm, xmm/m64 | SSE2 | SSE2 | Adds the low 64-bit double. |
| addss | ADDSS xmm, xmm/m32 | SSE | SSE | Adds the low 32-bit float. |
| addsubpd | ADDSUBPD xmm1, xmm2/m128 | SSE3 | SSE3 | Adds odd elements, subtracts even elements (Double). |
| addsubps | ADDSUBPS xmm1, xmm2/m128 | SSE3 | SSE3 | Adds odd elements, subtracts even elements (Complex Math). |
| adox | ADOX r32, r/m32 | Legacy | ADX | Adds with Overflow Flag (Parallel addition with ADCX). |
| aesdec | AESDEC xmm1, xmm2/m128 | AES-NI | AES-NI | Performs one round of AES decryption flow. |
| aesdec128kl | AESDEC128KL m128, xmm | Legacy | KEYLOCKER | Decrypts data using Key Locker handle. |
| aesdec256kl | AESDEC256KL m128, xmm | Legacy | KEYLOCKER | Decrypts data using 256-bit Key Locker handle. |
| aesdecwide128kl | AESDECWIDE128KL m128 | Legacy | KEYLOCKER_WIDE | Decrypts 8 blocks using 128-bit Key Locker handle. |
| aesdecwide256kl | AESDECWIDE256KL m128 | Legacy | KEYLOCKER_WIDE | Decrypts 8 blocks using 256-bit Key Locker handle. |
| aesenc | AESENC xmm1, xmm2/m128 | AES-NI | AES-NI | Performs one round of AES encryption flow. |
| aesenc128kl | AESENC128KL m128, xmm | Legacy | KEYLOCKER | Encrypts data using Key Locker handle. |
| aesenc256kl | AESENC256KL m128, xmm | Legacy | KEYLOCKER | Encrypts data using 256-bit Key Locker handle. |
| aesenclast | AESENCLAST xmm1, xmm2/m128 | AES-NI | AES-NI | Performs the last round of AES encryption. |
| aesencwide128kl | AESENCWIDE128KL m128 | Legacy | KEYLOCKER_WIDE | Encrypts 8 blocks using 128-bit Key Locker handle. |
| aesencwide256kl | AESENCWIDE256KL m128 | Legacy | KEYLOCKER_WIDE | Encrypts 8 blocks using 256-bit Key Locker handle. |
| aesimc | AESIMC xmm1, xmm2/m128 | AES-NI | AES-NI | Performs AES InvMixColumns transformation (decryption helper). |
| aeskeygenassist | AESKEYGENASSIST xmm1, xmm2/m128, imm8 | AES-NI | AES-NI | Generates round key for AES encryption. |
| and | AND r/m, r | Legacy | Base | Performs bitwise AND. |
| andn | ANDN r32, r32, r/m32 | VEX | BMI1 | Calculates (NOT src1) AND src2. Non-destructive. |
| andpd | ANDPD xmm, xmm/m128 | SSE2 | SSE2 | Bitwise AND of 128 bits. |
| andps | ANDPS xmm, xmm/m128 | SSE | SSE | Bitwise AND of 128 bits. |
| aor | AOR m32, r32 | VEX | RAO-INT | Atomically ORs a value to a remote memory location. |
| arpl | ARPL r/m16, r16 | System | System (32-bit) | Adjusts RPL of selector to match current CPL (Legacy). |
| axor | AXOR m32, r32 | VEX | RAO-INT | Atomically XORs a value to a remote memory location. |
| bextr | BEXTR r32, r/m32, r32 | VEX | BMI1 | Extracts sequence of bits from source using index/length. |
| blcfill | BLCFILL r32, r/m32 | TBM | TBM | Sets all bits below the lowest clear bit (x & (x+1)). |
| blci | BLCI r32, r/m32 | TBM | TBM | Sets all bits to 0 except the lowest set bit inverted (x | ~(x+1)). |
| blcic | BLCIC r32, r/m32 | TBM | TBM | Isolates lowest clear bit (~x & (x+1)). |
| blcmsk | BLCMSK r32, r/m32 | TBM | TBM | Creates mask from lowest clear bit (x ^ (x+1)). |
| blcs | BLCS r32, r/m32 | TBM | TBM | Sets lowest clear bit (x | (x+1)). |
| blendpd | BLENDPD xmm1, xmm2/m128, imm8 | SSE4.1 | SSE4.1 | Selects doubles from two sources based on immediate mask. |
| blendps | BLENDPS xmm1, xmm2/m128, imm8 | SSE4.1 | SSE4.1 | Selects floats from two sources based on immediate mask. |
| blendvpd | BLENDVPD xmm1, xmm2/m128, <XMM0> | SSE4.1 | SSE4.1 | Blends doubles based on variable mask in XMM0. |
| blendvps | BLENDVPS xmm1, xmm2/m128, <XMM0> | SSE4.1 | SSE4.1 | Blends floats based on variable mask in XMM0. |
| blsfill | BLSFILL r32, r/m32 | TBM | TBM | Sets all bits below lowest set bit ((x-1) | x). |
| blsi | BLSI r32, r/m32 | VEX | BMI1 | Extracts the lowest set bit (x & -x). |
| blsic | BLSIC r32, r/m32 | TBM | TBM | Isolates lowest set bit and complements (~x | (x-1)). |
| blsmsk | BLSMSK r32, r/m32 | VEX | BMI1 | Creates mask up to lowest set bit (x ^ (x-1)). |
| blsr | BLSR r32, r/m32 | VEX | BMI1 | Clears the lowest set bit (x & (x-1)). |
| bndcl | BNDCL b, r/m | Legacy | MPX | Checks if address is within lower bound. |
| bndcu | BNDCU b, r/m | Legacy | MPX | Checks if address is within upper bound. |
| bndmk | BNDMK b, m | Legacy | MPX | Creates bounds data for MPX. |
| bndmov | BNDMOV b, b/m | Legacy | MPX | Moves MPX bounds data. |
| bound | BOUND r, m | Legacy | Base (32-bit only) | Checks if operand is within bounds defined in memory. |
| bsf | BSF r, r/m | Legacy | Base | Scans for LSB set to 1. |
| bsr | BSR r, r/m | Legacy | Base | Scans for MSB set to 1. |
| bswap | BSWAP r32 | Legacy | Base | Reverses the byte order of a register (Endian swap). |
| bswap | BSWAP r | Legacy | Base | Reverses the byte order of a 32/64-bit register. |
| bt | BT r/m, r | Legacy | Base | Selects a bit and stores it in CF. |
| btc | BTC r/m, r | Legacy | Base | Stores bit in CF and complements the bit. |
| btr | BTR r/m, r | Legacy | Base | Stores bit in CF and clears bit to 0. |
| bts | BTS r/m, r | Legacy | Base | Stores bit in CF and sets bit to 1. |
| bzhi | BZHI r32, r/m32, r32 | VEX | BMI2 | Clears high bits starting at index. |
| call | CALL rel | Legacy | Base | Push EIP/RIP and jump to target. |
| cbw | CBW | Legacy | Base | Sign-extends AL into AX. |
| clac | CLAC | Legacy | SMAP | Clears Alignment Check flag (SMAP prevention). |
| clc | CLC | Legacy | Base | Sets the CF flag to 0. |
| cld | CLD | Legacy | Base | Sets DF to 0 (String operations increment). |
| cldemote | CLDEMOTE m8 | Legacy | CLDEMOTE | Hints to move cache line to lower cache level. |
| clflush | CLFLUSH m8 | SSE2 | SSE2 | Flushes the cache line containing the operand from all caches. |
| clflushopt | CLFLUSHOPT m8 | Legacy | CLFLUSHOPT | Optimized version of CLFLUSH (Higher throughput). |
| clgi | CLGI | SVM | SVM | Disables global interrupts (AMD SVM). |
| cli | CLI | Legacy | Base | Disables maskable hardware interrupts. |
| clrssbsy | CLRSSBSY m64 | Legacy | CET-SS | Clears the busy flag in the shadow stack token. |
| cltd | CLTD | Legacy | Base | Sign-extends EAX into EDX:EAX (also CDQ). |
| clts | CLTS | System | System | Clears the TS flag in CR0 (Privileged). |
| clui | CLUI | Legacy | UINTR | Clears the User Interrupt Flag (UIF). |
| clwb | CLWB m8 | Legacy | CLWB | Writes back modified cache line without flushing (Persistent Memory). |
| clzero | CLZERO | AMD | CLZERO | Clears the cache line at address RAX/EAX (AMD). |
| cmc | CMC | Legacy | Base | Toggles the CF flag. |
| cmovcc | CMOVcc r, r/m | Legacy | CMOV | Moves data if condition code is met (e.g., CMOVE, CMOVNE). |
| cmovg | CMOVG r, r/m | Legacy | CMOV | Move if ZF=0 and SF=OF. |
| cmovge | CMOVGE r, r/m | Legacy | CMOV | Move if SF=OF. |
| cmovl | CMOVL r, r/m | Legacy | CMOV | Move if SF!=OF. |
| cmovle | CMOVLE r, r/m | Legacy | CMOV | Move if ZF=1 or SF!=OF. |
| cmovnz | CMOVNZ r, r/m | Legacy | CMOV | Move if ZF=0. |
| cmovz | CMOVZ r, r/m | Legacy | CMOV | Move if ZF=1. |
| cmp | CMP r/m, r | Legacy | Base | Subtracts src from dest and updates flags (dest not modified). |
| cmpccxadd | CMPccXADD m32, r32, r32 | EVEX | CMPccXADD | Atomically adds if condition is met. |
| cmps | CMPSB | Legacy | Base | Compares byte/word at [ESI] with [EDI]. |
| cmpsd | CMPSD xmm1, xmm2/m64, imm8 | SSE2 | SSE2 | Compares low double-precision values and returns mask. |
| cmpsd | CMPSD | Legacy | Base | Compares doubleword at [ESI] with [EDI]. |
| cmpsq | CMPSQ | Legacy | Base (64-bit) | Compares quadword at [RSI] with [RDI]. |
| cmpss | CMPSS xmm1, xmm2/m32, imm8 | SSE | SSE | Compares low single-precision values and returns mask. |
| cmpsw | CMPSW | Legacy | Base | Compares word at [ESI] with [EDI]. |
| cmpxchg | CMPXCHG r/m, r | Legacy | Base | Compares accumulator with dest; if equal, dest = src; else accumulator = dest. |
| cmpxchg16b | CMPXCHG16B m128 | Base (64-bit) | Base (64-bit) | Atomically compares 128-bit memory with RDX:RAX. |
| cmpxchg8b | CMPXCHG8B m64 | Legacy | Base | Atomically compares EDX:EAX with memory; swaps if equal. |