如果A20线默认禁用,BIOS ROM如何在0xFFFFFFF0处访问?

4
我正在阅读有关A20线的内容,http://wiki.osdev.org/A20_Line,该文似乎表明,默认情况下A20线是被禁用的。在 Pentium 上,如果硬重置后立即输出的地址是0xFFFFFFF0,那么这是否意味着默认情况下A20线已启用?
1个回答

5
据我所知,OP中链接的文章有些误导性,应该说A20线路在传统BIOS MBR引导扇区中是默认禁用的。这将允许它默认启用,并且在引导传统IBM-PC兼容引导扇区时,固件会在引导时禁用它(而不是现代UEFI引导,在早期切换到长模式后仍将其保留)。这得到了该文章的外部链接的支持。(强调添加)
正文如下:

目前

我们为什么要担心这个无聊的问题?因为默认情况下,在启动时A20地址线路被禁用,因此操作系统必须找出如何启用它,而这可能并不容易,因为详细信息取决于使用的芯片组。

由于文章的其他部分使用了“重置”一词,我的解释是这特指作为引导过程的一部分而执行此操作。
在文章的后面部分,它明确提到了在重置期间禁用A20的影响。

A20和复位

如果(在保护模式下)禁用了A20,则无法访问奇数兆字节。复位后,在286上执行从内存顶部开始:0xfffff0,在386及更高版本上为0xfffffff0。如果A20被禁用,则变为0xeffff0或0xffeffff0,机器可能会崩溃,因为没有内存映射到那里。


@PeterCordes 意味着在重置期间 A20 是启用的,BIOS 可以选择禁用它。 - OSdev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接