x86 Instructions
957 instructions - showing 100 per page, page 6 of 10 - click any row to view encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Extension | Summary |
|---|---|---|---|---|
| pshufhw | PSHUFHW xmm1, xmm2/m128, imm8 | SSE2 | SSE2 | Shuffles the high 4 words of XMM. |
| pshuflw | PSHUFLW xmm1, xmm2/m128, imm8 | SSE2 | SSE2 | Shuffles the low 4 words of XMM. |
| psignb | PSIGNB xmm1, xmm2/m128 | SSSE3 | SSSE3 | Negates/Zeroes bytes in dest based on sign of src. |
| pslld | PSLLD mm, imm8 | MMX | MMX | Shifts doublewords left (MMX). |
| pslld | PSLLD xmm, imm8 | SSE2 | SSE2 | Shifts doublewords left. |
| pslldq | PSLLDQ xmm1, imm8 | SSE2 | SSE2 | Shifts the entire 128-bit register left by bytes. |
| psllq | PSLLQ mm, imm8 | MMX | MMX | Shifts quadword left (MMX). |
| psllw | PSLLW mm, imm8 | MMX | MMX | Shifts words left (MMX). |
| psllw | PSLLW xmm, imm8 | SSE2 | SSE2 | Shifts words left. |
| psrad | PSRAD mm, imm8 | MMX | MMX | Shifts doublewords right arithmetic (MMX). |
| psrad | PSRAD xmm, imm8 | SSE2 | SSE2 | Shifts doublewords right arithmetic. |
| psraw | PSRAW mm, imm8 | MMX | MMX | Shifts words right arithmetic (MMX). |
| psraw | PSRAW xmm, imm8 | SSE2 | SSE2 | Shifts words right arithmetic (sign bit). |
| psrld | PSRLD mm, imm8 | MMX | MMX | Shifts doublewords right logical (MMX). |
| psrld | PSRLD xmm, imm8 | SSE2 | SSE2 | Shifts doublewords right logical. |
| psrldq | PSRLDQ xmm1, imm8 | SSE2 | SSE2 | Shifts the entire 128-bit register right by bytes. |
| psrlq | PSRLQ mm, imm8 | MMX | MMX | Shifts quadword right logical (MMX). |
| psrlw | PSRLW mm, imm8 | MMX | MMX | Shifts words right logical (MMX). |
| psrlw | PSRLW xmm, imm8 | SSE2 | SSE2 | Shifts words right logical. |
| psubb | PSUBB xmm, xmm/m128 | SSE2 | SSE2 | Subtracts 16 bytes. |
| psubd | PSUBD xmm, xmm/m128 | SSE2 | SSE2 | Subtracts 4 doublewords. |
| psubq | PSUBQ xmm1, xmm2/m128 | SSE2 | SSE2 | Subtracts packed quadwords. |
| psubsb | PSUBSB mm, mm/m64 | MMX | MMX | Subtracts 8 signed bytes with saturation (MMX). |
| psubsw | PSUBSW mm, mm/m64 | MMX | MMX | Subtracts 4 signed words with saturation (MMX). |
| psubsw | PSUBSW xmm1, xmm2/m128 | SSE2 | SSE2 | Subtracts 16-bit words with signed saturation. |
| psubusb | PSUBUSB mm, mm/m64 | MMX | MMX | Subtracts 8 unsigned bytes with saturation (MMX). |
| psubusw | PSUBUSW mm, mm/m64 | MMX | MMX | Subtracts 4 unsigned words with saturation (MMX). |
| psubusw | PSUBUSW xmm1, xmm2/m128 | SSE2 | SSE2 | Subtracts 16-bit words with unsigned saturation. |
| psubw | PSUBW xmm, xmm/m128 | SSE2 | SSE2 | Subtracts 8 words. |
| ptest | PTEST xmm1, xmm2/m128 | SSE4.1 | SSE4.1 | Bitwise compare of 128-bit value (AND) setting flags. |
| ptwrite | PTWRITE r32/r64 | Legacy | PTWRITE | Writes data to the Intel Processor Trace stream. |
| punpckhbw | PUNPCKHBW xmm1, xmm2/m128 | SSE2 | SSE2 | Interleaves high bytes from two sources. |
| punpckhdq | PUNPCKHDQ xmm1, xmm2/m128 | SSE2 | SSE2 | Interleaves high doublewords. |
| punpckhqdq | PUNPCKHQDQ xmm1, xmm2/m128 | SSE2 | SSE2 | Interleaves high quadwords. |
| punpckhwd | PUNPCKHWD xmm1, xmm2/m128 | SSE2 | SSE2 | Interleaves high words. |
| punpcklbw | PUNPCKLBW xmm, xmm/m128 | SSE2 | SSE2 | Interleaves low bytes from two sources. |
| punpckldq | PUNPCKLDQ xmm, xmm/m128 | SSE2 | SSE2 | Interleaves low doublewords. |
| punpcklqdq | PUNPCKLQDQ xmm, xmm/m128 | SSE2 | SSE2 | Interleaves low quadwords. |
| punpcklwd | PUNPCKLWD xmm, xmm/m128 | SSE2 | SSE2 | Interleaves low words. |
| push | PUSH r/m | Legacy | Base | Decrements SP and stores operand on stack. |
| pusha | PUSHA | Legacy | Base (32-bit only) | Pushes AX, CX, DX, BX, SP, BP, SI, DI (Invalid in 64-bit). |
| pushf | PUSHF | Legacy | Base | Pushes EFLAGS onto stack. |
| pxor | PXOR mm, mm/m64 | MMX | MMX | Bitwise XOR of 64-bit MMX registers. |
| pxor | PXOR xmm, xmm/m128 | SSE2 | SSE2 | Bitwise XOR of 128-bit integers. |
| rcl | RCL r/m, imm8 | Legacy | Base | Rotates bits left through Carry Flag. |
| rcpps | RCPPS xmm, xmm/m128 | SSE | SSE | Approximate reciprocal (1/x) of four 32-bit floats. |
| rcpss | RCPSS xmm1, xmm2/m32 | SSE | SSE | Computes approximate reciprocal (1/x) of low float. |
| rcr | RCR r/m, imm8 | Legacy | Base | Rotates bits right through Carry Flag. |
| rdfsbase | RDFSBASE r64 | Legacy | FSGSBASE | Reads the FS base address into a register. |
| rdgsbase | RDGSBASE r64 | Legacy | FSGSBASE | Reads the GS base address into a register. |
| rdmsr | RDMSR | System | System | Reads MSR specified by ECX into EDX:EAX (Privileged). |
| rdpid | RDPID r32 | Legacy | RDPID | Reads the processor ID (TSC_AUX) into register. |
| rdpkru | RDPKRU | Legacy | PKU | Reads PKRU register into EAX (User-mode pages). |
| rdpmc | RDPMC | System | System | Reads performance counter specified by ECX into EDX:EAX. |
| rdrand | RDRAND r32 | Legacy | RDRAND | Retrieves a hardware-generated random number. |
| rdseed | RDSEED r32 | Legacy | RDSEED | Retrieves a random seed from hardware entropy source. |
| rdsspq | RDSSPQ r64 | Legacy | CET-SS | Reads the current shadow stack pointer into a register. |
| rdtsc | RDTSC | Legacy | Base | Reads the time-stamp counter into EDX:EAX. |
| rdtscp | RDTSCP | Legacy | Base | Reads TSC into EDX:EAX and Processor ID into ECX. |
| rep movs | REP MOVS m, m | Legacy | Base | Moves ECX bytes/words from [ESI] to [EDI]. |
| rep stos | REP STOS m | Legacy | Base | Fills [EDI] with AL/AX/EAX for ECX repeats. |
| repe cmps | REPE CMPS m, m | Legacy | Base | Compares [ESI] and [EDI] until mismatch or ECX=0. |
| repne scas | REPNE SCAS m | Legacy | Base | Scans [EDI] for AL/AX/EAX until match or ECX=0. |
| ret | RET | Legacy | Base | Pop EIP/RIP and resume execution. |
| rol | ROL r/m, imm8 | Legacy | Base | Rotates bits left. |
| ror | ROR r/m, imm8 | Legacy | Base | Rotates bits right. |
| rorx | RORX r32, r/m32, imm8 | VEX | BMI2 | Rotate right with immediate. No flags update. |
| roundpd | ROUNDPD xmm1, xmm2/m128, imm8 | SSE4.1 | SSE4.1 | Rounds all packed doubles according to immediate mode. |
| roundps | ROUNDPS xmm1, xmm2/m128, imm8 | SSE4.1 | SSE4.1 | Rounds all packed floats according to immediate mode. |
| roundsd | ROUNDSD xmm1, xmm2/m64, imm8 | SSE4.1 | SSE4.1 | Rounds low double according to immediate mode. |
| roundss | ROUNDSS xmm1, xmm2/m32, imm8 | SSE4.1 | SSE4.1 | Rounds low float according to immediate mode. |
| rsm | RSM | System | System (SMM) | Exits SMM and returns to previous state (Privileged). |
| rsqrtps | RSQRTPS xmm, xmm/m128 | SSE | SSE | Approximate reciprocal sqrt (1/sqrt(x)) of four 32-bit floats. |
| rsqrtss | RSQRTSS xmm1, xmm2/m32 | SSE | SSE | Computes approximate reciprocal sqrt (1/sqrt(x)) of low float. |
| rstorssp | RSTORSSP m64 | Legacy | CET-SS | Restores SSP from memory token. |
| sahf | SAHF | Legacy | Base | Loads SF, ZF, AF, PF, and CF from AH. |
| sal | SAL r/m, imm8 | Legacy | Base | Shifts bits left (Alias for SHL). |
| sar | SAR r/m, imm8 | Legacy | Base | Shifts bits right, preserving sign bit. |
| sarx | SARX r32, r/m32, r32 | VEX | BMI2 | Arithmetic right shift, count in register. No flags update. |
| saveprevssp | SAVEPREVSSP | Legacy | CET-SS | Saves the previous SSP to the shadow stack token. |
| sbb | SBB r/m, r | Legacy | Base | Subtracts operands and the Carry Flag (CF). |
| scas | SCASB | Legacy | Base | Compares AL/AX/EAX with memory at [EDI]. |
| scasd | SCASD | Legacy | Base | Compares EAX with memory at [EDI]. |
| scasq | SCASQ | Legacy | Base (64-bit) | Compares RAX with memory at [RDI]. |
| scasw | SCASW | Legacy | Base | Compares AX with memory at [EDI]. |
| senduipi | SENDUIPI r64 | Legacy | UINTR | Sends a User IPI to another processor. |
| serialize | SERIALIZE | Legacy | SERIALIZE | Forces serialization of instruction fetch/execution. |
| seta | SETA r/m8 | Legacy | Base | Sets byte to 1 if CF=0 and ZF=0. |
| setae | SETAE r/m8 | Legacy | Base | Sets byte to 1 if CF=0. |
| setb | SETB r/m8 | Legacy | Base | Sets byte to 1 if CF=1. |
| setbe | SETBE r/m8 | Legacy | Base | Sets byte to 1 if CF=1 or ZF=1. |
| setcc | SETcc r/m8 | Legacy | Base | Sets byte to 1 if condition met, else 0 (e.g., SETE, SETZ). |
| setg | SETG r/m8 | Legacy | Base | Sets byte to 1 if ZF=0 and SF=OF. |
| setge | SETGE r/m8 | Legacy | Base | Sets byte to 1 if SF=OF. |
| setl | SETL r/m8 | Legacy | Base | Sets byte to 1 if SF!=OF. |
| setle | SETLE r/m8 | Legacy | Base | Sets byte to 1 if ZF=1 or SF!=OF. |
| setno | SETNO r/m8 | Legacy | Base | Sets byte to 1 if OF=0. |
| setnp | SETNP r/m8 | Legacy | Base | Sets byte to 1 if PF=0 (Odd Parity). |
| setns | SETNS r/m8 | Legacy | Base | Sets byte to 1 if SF=0 (Positive). |
| setnz | SETNZ r/m8 | Legacy | Base | Sets byte to 1 if ZF=0. |