我正在阅读有关A20行http://wiki.osdev.org/A20_Line的信息,这似乎表明A20行默认情况下处于禁用状态。在奔腾上,如果硬重置后立即输出的地址是0xFFFFFFF0,是否表示默认情况下启用了A20线路?

最佳答案

据我了解,OP中链接的文章有点误导人,应该说从OS / bootloader的角度来看,默认情况下A20线是禁用的。这将允许默认情况下启用它,并使固件在引导期间禁用它。

该文章的external link支持这一点。 (添加了重点)


当下

为什么我们要担心这种废话呢?由于默认情况下A20地址线在引导时被禁用,因此操作系统必须找出如何启用它,并且由于细节取决于所使用的芯片组,因此这可能并非易事。


由于本文的其他部分使用术语“重置”,因此我的解释是,这特别是指将其作为引导过程的一部分进行。

在文章的下半部分,它特别提到了在重置期间禁用A20的效果。


A20并重设

如果(在保护模式下)禁用了A20,则无法访问奇数兆字节。重置后,执行从内存顶部开始:286上的0xfffff0,386上的0xfffffff0,以及更高版本。在禁用A20的情况下,该值将变为0xeffff0或0xffeffff0,并且计算机可能会崩溃,因为那里没有内存映射。

10-08 13:59