本文结合博文–计算机是如何启动的?效果更佳。
0. 载入内存
首先明确一个概念:载入内存,包含两个部分:
- 程序被加载器(软件或硬件)加载到内存的某个区域。
- CPU 的 CS:IP 寄存器被指向这个程序的起始地址。
1. BIOS (Base Input & Output System)
为什么称为基本输入输出系统?
答:BIOS 只有 64KB 的空间,所以实现的功能是很少的,包括(检测一些基本的硬件,然后在内存中 0x000 ~ 0x3FF建立数据结构,中断向量表IVT并填写中断例程。)
上电后先进入实模式,在实模式下地址空间是 1MB的(20根地址线)。
先看一下实模式下的内存布局
这 1MB 的地址空间不全是对应于DRAM内存的,而是不同的存储设备
其中F0000 ~ FFFFF 对应的正是 BIOS,这部分对应的存储空间不是内存条,而是ROM。
000 ~ 9FFFF 的 640KB 的空间对应到DRAM,即内存条。
地址映射<