The x86 instruction set refers to the set of instructions that x86-compatible microprocessors support. The instructions are usually part of an executable program, often stored as a computer file and executed on the processor.
The x86 instruction set has been extended several times, introducing wider registers and datatypes as well as new functionality.
This is the full 8086/8088 instruction set. Most if not all of these instructions are available in 32-bit mode; they just operate on 32-bit registers (eax, ebx, etc.) and values instead of their 16-bit (ax, bx, etc.) counterparts. See also x86 assembly language for a quick tutorial for this processor family. The updated instruction set is also grouped according to architecture (i386, i486, i686) and more generally is referred to as x86_32 and x86_64 (also known as AMD64).
Also MMX registers and MMX support instructions were added. They are usable for both integer and floating point operations, see below.
AMD changed the CPUID detection bit for this feature from the K6-II on.
VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF, VMXON
LZCNT, POPCNT (POPulation CouNT) - advanced bit manipulation
ANDN, BEXTR, BLSI, BLSMSK, BLSR, TZCNT
BZHI, MULX, PDEP, PEXT, RORX, SARX, SHRX, SHLX
BEXTR, BLCFILL, BLCI, BLCIC, BLCMASK, BLCS, BLSFILL, BLSIC, T1MSKC, TZMSK
FXRSTOR, FXSAVE
These are also supported on later Pentium IIs which do not contain SSE support
FISTTP (x87 to integer conversion with truncation regardless of status word)
FFREEP performs FFREE ST(i) and pop stack
Same as the SSE SIMD integer instructions which operated on MMX registers.