The IA-32 reference article from the English Wikipedia on 24-Apr-2004
(provided by Fixed Reference: snapshots of Wikipedia from wikipedia.org)

IA-32

Sponsor with the world's largest charity for orphans
IA-32, sometimes called i386, is the set of instructions - the computer architecture - for a family of microprocessors embedded in numerous types and brands of personal computers. Intel is the original creator and primary supplier of IA-32 based microprocessors, with competing companies such as AMD.

The term was invented to distinguish the instruction set for Intel 80386 compatible series from that for incompatible series such as Itanium.

The IA-32 instruction set is usually described as CISC (Complex Instruction Set Computer) architecture, though such classifications have become less meaningful with advances in microprocessor design.

The set is implemented in all x86 CPUs current to or newer than the 80386. IA-32 programs typically run in protected mode which supports memory protection, the ability to use memory above 1MB (MS-DOS limit), virtual memory, and task switching for multitasking. IA-32 programs can access a 4GB linear address space.

Each generation of CPUs since has added several features to this set:

The 80386 has eight 32-bit general registers for application use and a number of system registers classified as segment, control, debug, and test registers.

general data registers

All of the four following registers may be used as general purpose registers. However each has some specialized purpose as well.

general address registers

Real mode Instructions (8086/8088 compatibility) are:

aaa, aad, aam, aas, adc, add, and, call, cbw, clc, cld, cli, cmc, cmp, cmpsb, smpsw, cwd, daa, das, dec, div, esc, hlt, idiv, imul, in, inc, int, into, iret, ja, jae, jb, jbe, jc, jcxz, je, jg, jge, jl, jle, jmp, jna, jnae, jnb, jnbe, jnc, jne, jng, jnge, jnlm, jnle, jno, jnp, jns, jnz, jo, jp, jpe, jpo, js, jz, lahf, lds, lea, les, lock, lodsb, lodsw, loop, loope, loopne, loopnz, loopz, mov, movsb, movsw, mul, neg, nop, not, or, out, pop, popf, push, push, puchf, rcl, rcr, rep, repe, repne, repnz, repz, ret, rol, ror, sahf, sal, sar, sbb, scasb, scasw, shl, shr, stc, std, sti, stosb, stosw, sub, test, wait, xchg, xlat, xor (please de-typo)

This is the full 8086-8088 instruction set, but 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 chip.

There is also another mode in which the processor acts as a pure 32-bit processor - protected mode. This mode was introduced with the 80386-processor (actually, the 286 processor, but the 286 still used 16 bit registers).

Intel's newer IA-64 architecture is not directly compatible with the IA-32 instruction set. AMD's new AMD64 instruction set is largely compatible with IA-32, and includes a number of extensions.

See also:

External links: