可能重复: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。
0xFFFFFFF0
如何映射到F000:FFF0
?它甚至被映射了吗?0xFFFFFFF0
地址在哪里?提前感谢您的帮助。
答案 0 :(得分:3)
如果有机会我会用参考文献编辑它。
386手册指出地址线31-20在复位时为高电平,直到遇到JMP,然后再次为低电平。这种映射实际上并不存在更多的黑客攻击。
如果没有RAM的地址空间(在具有1GB RAM的系统中)的顶部芯片组将ROM代码而不是RAM映射到该地址。在那里安装RAM是没有意义的,因为在第一次上电时就没有代码可以执行,所以它必须是非易失性的。