Bios中断总是在ram上吗?

时间:2016-04-20 14:18:46

标签: assembly operating-system embedded bios

我的问题是即使在加载操作系统后,Bi Bios中断还是在RAM中吗?如果是,则保留bios中断和中断处理程序的那部分ram被保留,而不被其他程序覆盖。是对的吗?  在此先感谢

1 个答案:

答案 0 :(得分:3)

由于RAM是易失性的并且在电源关闭时被完全擦除,因此处理BIOS中断的代码不存在于RAM中。它全部都在ROM中(或者这些天实际上是闪存)。然而,有一个关键的部分是如何处理中断并保存在RAM中,而中断向量表(IVT)存储所有中断例程的地址。 CPU使用此表来查找要执行的代码的地址,以便处理中断。 BIOS中断例程还使用RAM存储它们需要运行的各种数据位。

当现代保护模式操作启动时,它必须用自己的完全替换所有中断例程。它必须这样做,因为BIOS的中断代码不能在保护模式下工作。除非操作系统采取特殊措施来保留BIOS创建的RAM中的旧IVT,以及BIOS存储在RAM中的任何数据,否则此信息将丢失。这意味着在不重启机器的情况下不再可能使用BIOS中断。 BIOS用来处理中断的RAM不是保留的,操作系统可以随意使用它。

我知道保留BIOS的IVT和数据的唯一保护模式操作系统是Windows 95,98和ME。这些也是唯一允许您从用户模式程序调用BIOS中断的操作系统,然后只能从16位应用程序中可靠地调用BIOS中断。