据说bios程序只能在实模式下看到,也知道bios是存储在ROM中的,但是CPU映射的通常是RAM,是不是说在实模式下,内存的一部分空间映射到ROM ,所以我们可以看到bios程序。
问问题
719 次
1 回答
5
物理地址空间不仅仅是 RAM。它包含 ROM 和内存映射设备,例如 APIC 和视频内存。您不能在实模式之外使用 BIOS 的主要原因是它被编写为在实模式下使用。一些函数可能在 16 位保护模式下工作,而更多函数可以在虚拟 8086 模式下工作,但试图调用错误的函数可能会导致系统崩溃。此外,中断在保护模式下的工作方式与实模式下不同,因此您必须重新映射函数。
BIOS 在实模式之外不可用的另一个原因是分页。分页是将虚拟地址映射到物理地址的过程。如果操作系统使用分页,它可以选择根本不将包含 ROM 的页面映射到虚拟内存中,因此它们实际上不存在,因此无法调用。ROM 仍然占用一些物理地址空间,但不能通过虚拟内存获得。
于 2012-04-27T19:47:23.463 回答