CS=0xFFFF IP=0x0000与CS=F000 IP=FFF0

计算机自动上电后,有些书上说CS=0xFFFF IP=0x0000,例如linux内核设计的艺术(第三版)。也有一些书说CS=F000 IP=FFF0,例如赵炯的linux内核完全注释。

其实并不是说对与错,这个差异的原因本身是由于不同的硬件初始化导致的不同,两种初始化虽然值不同,但是CS:IP最后的值都是0xFFFF0,这个值是硬件自动初始化的。也是上电后跳转后的第一条执行地址。BIOS也是位于这段空间。

例如8K的BIOS,本身存储在ROM中,由于影子内存的原因导致上电映射到0xFE000~0xFFFFF中。而上电硬件自动初始化的CS:IP会自动跳转到这段空间(BIOS空间)。

最后的步骤就是BIOS的一些构建,诸如中断向量表、BIOS数据区、BIOS中断服务程序部分的内存映射。

好记性不如烂笔头
原文地址:https://www.cnblogs.com/pokerface/p/5175728.html