Instruction Types
In general, the features of the modern x86 instruction set are:
- A compact encoding
- Variable length and alignment independent (encoded as little endian, as is all data in the x86 architecture)
- Mainly one-address and two-address instructions, that is to say, the first operand is also the destination.
- Memory operands as both source and destination are supported (frequently used to read/write stack elements addressed using small immediate offsets).
- Both general and implicit register usage; although all seven (counting
ebp
) general registers in 32-bit mode, and all fifteen (countingrbp
) general registers in 64-bit mode, can be freely used as accumulators or for addressing, most of them are also implicitly used by certain (more or less) special instructions; affected registers must therefore be temporarily preserved (normally stacked), if active during such instruction sequences.
- Produces conditional flags implicitly through most integer ALU instructions.
- Supports various addressing modes including immediate, offset, and scaled index but not PC-relative, except jumps (introduced as an improvement in the x86-64 architecture).
- Includes floating point to a stack of registers.
- Contains special support for atomic read-modify-write instructions (
xchg
,cmpxchg
/cmpxchg8b
,xadd
, and integer instructions which combine with thelock
prefix) - SIMD instructions (instructions which perform parallel simultaneous single instructions on many operands encoded in adjacent cells of wider registers).
Read more about this topic: X86 Assembly Language
Famous quotes containing the words instruction and/or types:
“A little instruction in the elements of chartography—a little practice in the use of the compass and the spirit level, a topographical map of the town common, an excursion with a road map—would have given me a fat round earth in place of my paper ghost.”
—Mary Antin (1881–1949)
“He’s one of those know-it-all types that, if you flatter the wig off him, he chatter like a goony bird at mating time.”
—Michael Blankfort. Lewis Milestone. Johnson (Reginald Gardner)