BIOS 和地址 0x07C00

BIOS and Address 0x07C00

来自 Wikipedia

On an IBM PC compatible machine, the BIOS selects a boot device, then copies the first sector from the device (which may be a MBR, VBR or any executable code), into physical memory at memory address 0x7C00

我正在阅读操作系统中的引导过程,尤其是英特尔 x86:所以我发现 BIOS 加载了 引导加载程序的第一个 512 bytes 到内存位置

(segment, offset) = (0x0000,0x7C00) = 0x07C00

并跳转到那里执行引导加载程序

我的问题是为什么 BIOS 总是加载

引导程序到 0x07C00?

为什么BIOS总是加载 bootloader0x07C00历史

早期,一个PC只保证有 64 KBRAM 内存。

0x07C00以下的内存保留给中断向量, BIOSBASIC,等等

第一个 OS 可用内存从 0x08000 开始。

所以 bootloader加载到0x07C00,也就是1 KB下面0x08000.