x86 Instructions
957 instructions - showing 100 per page, page 2 of 10 - click any row to view encoding, pseudocode, and full documentation.
| Mnemonic | Syntax | Format | Extension | Summary |
|---|---|---|---|---|
| comisd | COMISD xmm1, xmm2/m64 | SSE2 | SSE2 | Compares low double and sets EFLAGS (Signaling NaN raises exception). |
| comiss | COMISS xmm1, xmm2/m32 | SSE | SSE | Compares low float and sets EFLAGS (Signaling NaN raises exception). |
| cpuid | CPUID | Legacy | Base | Returns processor information based on EAX value. |
| cqto | CQTO | Legacy | Base (64-bit) | Sign-extends RAX into RDX:RAX (also CQO). |
| crc32 | CRC32 r32, r/m | SSE4.2 | SSE4.2 | Accumulates CRC32C value using polynomial 0x11EDC6F41. |
| cvtdq2pd | CVTDQ2PD xmm1, xmm2/m64 | SSE2 | SSE2 | Converts two 32-bit integers to two 64-bit doubles. |
| cvtdq2ps | CVTDQ2PS xmm1, xmm2/m128 | SSE2 | SSE2 | Converts four 32-bit integers to floats. |
| cvtpd2dq | CVTPD2DQ xmm1, xmm2/m128 | SSE2 | SSE2 | Converts two doubles to two 32-bit integers (Rounded). |
| cvtpd2ps | CVTPD2PS xmm1, xmm2/m128 | SSE2 | SSE2 | Converts two doubles to two floats. |
| cvtps2dq | CVTPS2DQ xmm1, xmm2/m128 | SSE2 | SSE2 | Converts four floats to 32-bit integers (Rounded). |
| cvtps2pd | CVTPS2PD xmm1, xmm2/m64 | SSE2 | SSE2 | Converts lower two floats to doubles. |
| cvtsd2si | CVTSD2SI r32, xmm/m64 | SSE2 | SSE2 | Converts low double to integer (Rounded according to MXCSR). |
| cvtsd2sq | CVTSD2SQ r64, xmm/m64 | SSE2 | Base (64-bit) | Converts double to 64-bit integer (Rounded). |
| cvtsd2ss | CVTSD2SS xmm, xmm/m64 | SSE2 | SSE2 | Converts double to float. |
| cvtsi2sd | CVTSI2SD xmm, r/m32 | SSE2 | SSE2 | Converts 32-bit int to double. |
| cvtsi2ss | CVTSI2SS xmm, r/m32 | SSE | SSE | Converts 32-bit int to float. |
| cvtsq2sd | CVTSQ2SD xmm1, r/m64 | SSE2 | Base (64-bit) | Converts 64-bit integer to double. |
| cvtsq2ss | CVTSQ2SS xmm1, r/m64 | SSE | Base (64-bit) | Converts 64-bit integer to float. |
| cvtss2sd | CVTSS2SD xmm, xmm/m32 | SSE2 | SSE2 | Converts float to double. |
| cvtss2si | CVTSS2SI r32, xmm/m32 | SSE | SSE | Converts low float to integer (Rounded according to MXCSR). |
| cvtss2sq | CVTSS2SQ r64, xmm/m32 | SSE | Base (64-bit) | Converts float to 64-bit integer (Rounded). |
| cvttpd2dq | CVTTPD2DQ xmm1, xmm2/m128 | SSE2 | SSE2 | Converts two doubles to two 32-bit integers (Truncated). |
| cvttps2dq | CVTTPS2DQ xmm1, xmm2/m128 | SSE2 | SSE2 | Converts four floats to 32-bit integers (Truncated). |
| cvttps2pi | CVTTPS2PI mm, xmm/m64 | SSE | SSE | Converts packed floats to packed MMX integers (Truncate). |
| cvttsd2si | CVTTSD2SI r32, xmm/m64 | SSE2 | SSE2 | Converts double to 32-bit int (Truncate). |
| cvttsd2sq | CVTTSD2SQ r64, xmm/m64 | SSE2 | Base (64-bit) | Converts double to 64-bit integer (Truncated). |
| cvttss2si | CVTTSS2SI r32, xmm/m32 | SSE | SSE | Converts float to 32-bit int (Truncate). |
| cvttss2sq | CVTTSS2SQ r64, xmm/m32 | SSE | Base (64-bit) | Converts float to 64-bit integer (Truncated). |
| cwd | CWD | Legacy | Base | Sign-extends AX into DX:AX. |
| cwtl | CWTL | Legacy | Base | Sign-extends AX into EAX (also CWDE). |
| daa | DAA | Legacy | Base (Legacy) | Adjusts AL after addition for packed BCD. |
| das | DAS | Legacy | Base (Legacy) | Adjusts AL after subtraction for packed BCD. |
| dec | DEC r/m | Legacy | Base | Decrements the operand by 1. |
| div | DIV r/m | Legacy | Base | Unsigned divide (AX / src). |
| divpd | DIVPD xmm, xmm/m128 | SSE2 | SSE2 | Divides two 64-bit doubles. |
| divps | DIVPS xmm, xmm/m128 | SSE | SSE | Divides four 32-bit floats. |
| divsd | DIVSD xmm1, xmm2/m64 | SSE2 | SSE2 | Divides the low double-precision floating-point value. |
| divss | DIVSS xmm1, xmm2/m32 | SSE | SSE | Divides the low single-precision floating-point value. |
| dppd | DPPD xmm1, xmm2/m128, imm8 | SSE4.1 | SSE4.1 | Computes the dot product of two double vectors. |
| dpps | DPPS xmm1, xmm2/m128, imm8 | SSE4.1 | SSE4.1 | Computes the dot product of two float vectors. |
| emms | EMMS | MMX | MMX | Clears the FPU tag word to allow FP instructions after MMX. |
| encls | ENCLS | Legacy | SGX | Executes an SGX supervisor function specified by EAX. |
| enclu | ENCLU | Legacy | SGX | Executes an SGX user function specified by EAX. |
| encodekey128 | ENCODEKEY128 r32, r32 | Legacy | KEYLOCKER | Wraps a 128-bit AES key into a handle. |
| encodekey256 | ENCODEKEY256 r32, r32 | Legacy | KEYLOCKER | Wraps a 256-bit AES key into a handle. |
| endbr32 | ENDBR32 | Legacy | CET-IBT | Marker instruction for Indirect Branch Tracking (IBT). |
| endbr64 | ENDBR64 | Legacy | CET-IBT | Marker instruction for Indirect Branch Tracking (IBT). |
| enqcmd | ENQCMD r32, m512 | Legacy | ENQCMD | Writes a command to a device (DSA/IAA accelerator). |
| enqcmds | ENQCMDS r32, m512 | Legacy | ENQCMD | Writes a command to a device (Supervisor mode). |
| enter | ENTER imm16, imm8 | Legacy | Base | Creates a stack frame for procedure parameters. |
| erets | ERETS | Legacy | FRED | Returns from an event handler to supervisor mode (FRED). |
| eretu | ERETU | Legacy | FRED | Returns from an event handler to user mode (FRED). |
| extractps | EXTRACTPS r32/m32, xmm1, imm8 | SSE4.1 | SSE4.1 | Extracts a single float from XMM to an integer register. |
| extrq | EXTRQ xmm1, xmm2 | SSE4a | SSE4a | Extracts bit field from register (AMD SSE4a). |
| f2xm1 | F2XM1 | Legacy | x87 FPU | Computes (2^ST(0)) - 1. |
| fabs | FABS | Legacy | x87 FPU | Replaces ST(0) with its absolute value. |
| fadd | FADD m32fp/m64fp | Legacy | x87 FPU | Adds src to dest (ST(0) += src). |
| fchs | FCHS | Legacy | x87 FPU | Reverses the sign of ST(0). |
| fclex | FCLEX | Legacy | x87 FPU | Clears floating-point exception flags. |
| fcmovb | FCMOVB ST(0), ST(i) | Legacy | x87 FPU (P6+) | Moves ST(i) to ST(0) if CF=1. |
| fcmovbe | FCMOVBE ST(0), ST(i) | Legacy | x87 FPU (P6+) | Moves ST(i) to ST(0) if CF=1 or ZF=1. |
| fcmove | FCMOVE ST(0), ST(i) | Legacy | x87 FPU (P6+) | Moves ST(i) to ST(0) if ZF=1. |
| fcmovnb | FCMOVNB ST(0), ST(i) | Legacy | x87 FPU (P6+) | Moves ST(i) to ST(0) if CF=0. |
| fcmovnbe | FCMOVNBE ST(0), ST(i) | Legacy | x87 FPU (P6+) | Moves ST(i) to ST(0) if CF=0 and ZF=0. |
| fcmovne | FCMOVNE ST(0), ST(i) | Legacy | x87 FPU (P6+) | Moves ST(i) to ST(0) if ZF=0. |
| fcmovnu | FCMOVNU ST(0), ST(i) | Legacy | x87 FPU (P6+) | Moves ST(i) to ST(0) if PF=0. |
| fcmovu | FCMOVU ST(0), ST(i) | Legacy | x87 FPU (P6+) | Moves ST(i) to ST(0) if PF=1. |
| fcom | FCOM m32fp/m64fp | Legacy | x87 FPU | Compares ST(0) with source. |
| fcomi | FCOMI ST(0), ST(i) | Legacy | x87 FPU (P6+) | Compares ST(0) with ST(i) and sets CPU EFLAGS directly. |
| fcos | FCOS | Legacy | x87 FPU | Computes cosine of ST(0) (in radians). |
| fdecstp | FDECSTP | Legacy | x87 FPU | Decrements the TOP field in the FPU status word. |
| fdiv | FDIV m32fp/m64fp | Legacy | x87 FPU | Divides dest by src. |
| ffree | FFREE ST(i) | Legacy | x87 FPU | Sets the tag for ST(i) to empty. |
| fild | FILD m16int/m32int/m64int | Legacy | x87 FPU | Converts integer in memory to double-extended-precision float and pushes to ST(0). |
| fincstp | FINCSTP | Legacy | x87 FPU | Increments the TOP field in the FPU status word. |
| finit | FINIT | Legacy | x87 FPU | Resets FPU to default state. |
| fist | FIST m16int/m32int | Legacy | x87 FPU | Converts ST(0) to integer and stores in memory. |
| fistp | FISTP m16int/m32int/m64int | Legacy | x87 FPU | Converts ST(0) to integer, stores in memory, and pops stack. |
| fld | FLD m32fp/m64fp/m80fp | Legacy | x87 FPU | Pushes a floating-point value onto the FPU register stack (ST0). |
| fld1 | FLD1 | Legacy | x87 FPU | Pushes +1.0 onto the FPU register stack. |
| fldcw | FLDCW m2byte | Legacy | x87 FPU | Loads FPU control word from memory. |
| fldl2e | FLDL2E | Legacy | x87 FPU | Pushes log2(e) onto the FPU register stack. |
| fldl2t | FLDL2T | Legacy | x87 FPU | Pushes log2(10) onto the FPU register stack. |
| fldlg2 | FLDLG2 | Legacy | x87 FPU | Pushes log10(2) onto the FPU register stack. |
| fldln2 | FLDLN2 | Legacy | x87 FPU | Pushes ln(2) onto the FPU register stack. |
| fldpi | FLDPI | Legacy | x87 FPU | Pushes Pi onto the FPU register stack. |
| fldz | FLDZ | Legacy | x87 FPU | Pushes +0.0 onto the FPU register stack. |
| fmul | FMUL m32fp/m64fp | Legacy | x87 FPU | Multiplies dest by src. |
| fpatan | FPATAN | Legacy | x87 FPU | Computes arctan(ST(1)/ST(0)). |
| fprem | FPREM | Legacy | x87 FPU | Computes remainder of ST(0) / ST(1). |
| fptan | FPTAN | Legacy | x87 FPU | Computes tangent of ST(0) and pushes 1.0. |
| frndint | FRNDINT | Legacy | x87 FPU | Rounds ST(0) to integer according to RC field. |
| frstor | FRSTOR m108byte | Legacy | x87 FPU | Loads FPU state from memory. |
| fsave | FSAVE m108byte | Legacy | x87 FPU | Stores FPU state to memory and re-initializes FPU. |
| fscale | FSCALE | Legacy | x87 FPU | Scales ST(0) by ST(1) (ST(0) * 2^ST(1)). |
| fsin | FSIN | Legacy | x87 FPU | Computes sine of ST(0) (in radians). |
| fsincos | FSINCOS | Legacy | x87 FPU | Computes sine and cosine of ST(0), pushing both to stack. |
| fsqrt | FSQRT | Legacy | x87 FPU | Computes square root of ST(0). |
| fst | FST m32fp/m64fp | Legacy | x87 FPU | Copies the value in ST(0) to memory or another register. |
| fstcw | FSTCW m2byte | Legacy | x87 FPU | Stores FPU control word to memory. |