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
总是加载
bootloader
到 0x07C00
是历史。
早期,一个PC
只保证有
64 KB
的 RAM
内存。
0x07C00
以下的内存保留给中断向量,
BIOS
和 BASIC
,等等
第一个 OS 可用内存从 0x08000
开始。
所以
bootloader
加载到0x07C00
,也就是1 KB
下面0x08000
.
来自 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
总是加载
bootloader
到 0x07C00
是历史。
早期,一个PC
只保证有
64 KB
的 RAM
内存。
0x07C00
以下的内存保留给中断向量,
BIOS
和 BASIC
,等等
第一个 OS 可用内存从 0x08000
开始。
所以
bootloader
加载到0x07C00
,也就是1 KB
下面0x08000
.