Skip to main content
1 of 9
Stephen Kitt
  • 131k
  • 19
  • 543
  • 502

I’m assuming you’re asking about x86 processors, not the older 8-bit CPUs.

  1. Real mode is always segmented, and everything (CPU, operating system, programs) has access to all the system’s address space up to just over 1 MiB. You can write programs without paying attention to segments, and you’ll be limited to 64 KiB, but nothing enforces that.

  2. The 8086, 8088, and 80186 CPUs only run in real mode. The 80286 introduced 16-bit protected with a 24-bit address space. The 80386 introduced 32-bit protected mode, which still relies on segments (but segments can provide direct access to all 4 GiB of address space). Newer CPUs support all the modes available in older CPUs.

  3. Up to Windows 3.0 included, Windows could run in real mode, using segments. Windows 3.0 could also run in protected mode, on 286s and 386s. MS-DOS always ran in real mode; there were several DOS extenders which allowed programs to run in protected mode on top of DOS, such as DOS4GW.

There is an “unreal flat mode” on 386s and later, which allows programs to run in real mode while accessing all 4 GiB, but it’s difficult to use and never gained much popularity.

Stephen Kitt
  • 131k
  • 19
  • 543
  • 502