LOGBOOK

HELP

Quiz Entry - updated: 2026.07.14

What are the key differences between x86-64 and IA-32?

x86-64 widens IA-32 to 64 bits: 64-bit registers, double the general-purpose registers (8 → 16), a huge address space, and a new 16-byte data type — but operations otherwise stay the same.

x86-64 is deliberately an extension, not a replacement, so most of IA-32 carries straight over. What changes:

Feature IA-32 (x86) x86-64
Register width 32-bit 64-bit
General-purpose registers 8 (EAX–EDI) 16 (RAX–R15)
Address space 4 GB 64-bit (48-bit used in practice)
Largest data type 8 bytes 16 bytes (__int128)
Pointer size 4 bytes 8 bytes
PC register eip rip

The biggest practical wins are the extra eight registers (R8–R15), which cut down how often code must spill values to memory, and the 64-bit pointers that unlock more address space.

Gotcha: despite the move to 64 bits, the default operand size in 64-bit mode is still 32-bit — 64-bit operations need a REX prefix (or a q suffix in assembly). This is why writing to %eax is so common even in 64-bit code.

Go deeper:

  • doc x86-64 (Wikipedia) — register widening and the jump from 8 to 16 GP registers vs IA-32.

From Quiz: REVE1 / The Processor Interface | Updated: Jul 14, 2026