Search notes:

x86 modes

Real mode (16 bit)

Real mode is supported on all x86s (starting with 8086?). In fact, an x86 processor is initially started in real mode (see first instruction of an x86)

Segmentation

8086: 20-bit address, but only 16-bit registers. In order to make entire address space available, segmentation is used.
Memory diveded into 64 KB (16-bit) chunks («segments»). Start address of segment: segment-selector * 16.

Protected mode

32-bit address bus instead of 20-bit.
Paging
In protected mode, real mode (8086) software can be executed in a protected (and multi tasking) environment, called «virtual-8086 mode».

Segmentation

No fixed 64 KB chunks anymore, instead: size and location of segements described by segment descriptor (which are stored in the GDT - Global Descriptor Table).

System management mode (SMM)

IA-32e mode

IA-32e mode comes with the 64 bit archtecture. It has two submodes:

Compatiblity mode

Allows most 16- and 32-bit applications to run unchanged.
Compatiblity mode is similar to 32-bit protected mode.
The OS can switch between compatibility mode and 64 bit mode using a code segment.

64 bit mode

Some features of 64 bit:
  • 8 new general purpose registers: r8 .. r15
  • All general purpose registers are 64 bit.
  • 64 bit instruction pointer: RIP
  • New operating mode : long mode
  • 64-bit addresses and operands
  • RIP relative addressing

Long mode

Long mode is an extension of protected mode.
It consists of two sub modes
  • 64 bit mode
  • compatibility mode.

Index