Intel重置向量

时间:2014-03-05 06:15:39

标签: operating-system x86 x86-64 computer-architecture bios

可能重复:Software initialization code at 0xFFFFFFF0H

当系统启动时(Intel),复位向量位于地址0xFFFFFFF0(比4G小16个字节)(如上面链接所述)。该地址包含BIOS所在的FAR JUMP。我看了答案,评论和参考链接,也做了一些搜索,但仍然无法理解32位地址如何映射到16位(实模式)?

我的困惑是在这个链接:http://www.starman.vertcomp.com/asm/bios/index.html中,作者提到地址F000:FFF0(小于1MB的16个字节)包含了BIOS所在的JUMP。

  1. 0xFFFFFFF0如何映射到F000:FFF0?它甚至被映射了吗?
  2. 如果计算机没有物理4G内存,假设它只有1G,0xFFFFFFF0地址在哪里?
  3. 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

如果有机会我会用参考文献编辑它。

386手册指出地址线31-20在复位时为高电平,直到遇到JMP,然后再次为低电平。这种映射实际上并不存在更多的黑客攻击。

如果没有RAM的地址空间(在具有1GB RAM的系统中)的顶部芯片组将ROM代码而不是RAM映射到该地址。在那里安装RAM是没有意义的,因为在第一次上电时就没有代码可以执行,所以它必须是非易失性的。