英特尔重置向量 [英] Intel Reset Vector

查看:107
本文介绍了英特尔重置向量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能重复:位于0xFFFFFFF0H的软件初始化代码

系统启动时(Intel),复位向量位于地址0xFFFFFFF0(小于4G的16个字节)(如上面的链接所述).该地址包含BIOS所在的FAR JUMP.我阅读了答案,注释和引用的链接,也进行了一些搜索,但仍然无法理解如何将32位地址映射为16位(实模式)?

When the system boots up (Intel), reset vector is at address 0xFFFFFFF0 (16 bytes less than 4G) (as mentioned in above link). That address contains FAR JUMP to where the BIOS is. I read the answer, comments and referenced link, also did some searching, but still cannot understand how 32-bit address can be map to 16-bit (Real Mode)?

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

My confusion is that in this link: http://www.starman.vertcomp.com/asm/bios/index.html, author mentioned that address F000:FFF0 (16 bytes less than 1MB) contains JUMP to where the BIOS is.

  1. 0xFFFFFFF0如何映射到F000:FFF0?它甚至被映射吗?
  2. 如果计算机没有物理4G内存,可以说它只有1G,0xFFFFFFF0地址在哪里?
  1. How 0xFFFFFFF0 gets mapped to F000:FFF0? Does it even gets mapped?
  2. If the computer doesn't have physical 4G of memory, let say it has only 1G, where is the 0xFFFFFFF0 address?

预先感谢您的帮助.

推荐答案

如果有机会,我将使用参考文献对其进行编辑.

When I have a chance I will edit this with references.

386手册指出,地址线31-20在复位时为高电平,直到遇到JMP为止,然后它们再次为低电平.映射实际上并没有更多的黑客之处.

The 386 manual states that the address lines 31-20 are high on reset until a JMP is encountered, then they are low again. The mapping isn't really there its more of a hack.

如果没有RAM的地址空间(在具有1GB RAM的系统中),则芯片组将映射ROM代码而不是RAM到该地址.在那儿没有RAM是没有意义的,因为在第一次加电时就没有要执行的代码,因此它必须是非易失性的.

The top if the address space where there is no RAM (in a system with say 1GB of RAM) the chipset will map ROM code rather than RAM to that address. It doesn't make sense to have RAM there since on first power on there would be no code there to execute, so it must be non volatile.

这篇关于英特尔重置向量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆