Stories
Slash Boxes
Comments

SoylentNews is people

SoylentNews is powered by your submissions, so send in your scoop. Only 18 submissions in the queue.

Submission Preview

Link to Story

Your CPU still has an 8086 mode

Accepted submission by Snotnose at 2026-10-13 23:57:21 from the Segmentation fault dept.
News

As someone who spent 3-4 years writing 8086 assembly code I'm getting a kick out of this. [xda-developers.com]

Regardless of whether you're on Intel or AMD, the first instruction your CPU executes runs in a mode designed for the 16-bit Intel 8086, released in June 1978. This is called "real mode," and despite everything that has changed about processors since then, this part of the startup process has remained remarkably similar.

  Real mode, or real-address mode as Intel calls it, is the execution environment of the original 8086. Intel says that "To an 8086 program, a processor operating in real-address mode behaves like a high-speed 8086 processor." In this mode, registers are 16 bits wide, there's no memory protection and no paging, and memory is addressed by taking a 16-bit segment value, shifting it left by four bits, and adding a 16-bit offset to it. That gives you a 20-bit address and a nominal 1MB address space, which was plenty in 1978 and is tiny by any modern standard.

When an x86 processor powers up, or when its reset pin is asserted, its registers are set to a known state and the CPU goes into real mode. The reset table for Intel's current processors have the control register CR0 at 60000010h, meaning that protection is off and paging is off, and it's the same value used by AMD for its own chips as well. No matter how powerful your 64-bit CPU is, it's basically just a chip from 1978 at boot until it's told to switch out of it.


Original Submission