BIOS 扩展(选项 ROM)如何工作?

BIOS 扩展(选项 ROM)如何工作?

BIOS 扩展(选项 ROM)如何工作?我知道已安装的设备可能有自己的 BIOS,可以为系统添加功能,但我不确定它们是如何设置的。

我一直读到以下地址范围 0x0C0000 到 0x0F0000 被使用,但我不明白这有什么用。好像 ROM 存储在这些地址,但我不明白它是如何工作的。如果您安装了 2 个设备,并且它们都应位于 0x0C0000,该怎么办?

然后 BIOS 跳转到选项 ROM 并从那里开始运行,我的下一个问题是,当 ROM 写入中断向量表并挂接中断以指向自身时,它指向什么地址?

例如,在 VGA 卡上它将把 INT 10h 挂接到什么地址?

或者是整个选项 ROM 被映射到 0x0C0000 到 0x0F0000 之间的区域,并且 IVT 会指向这个范围内的某个地方?

我知道这是关于不再使用的旧技术(例如使用中断)但我对它们的工作原理很感兴趣。

如果有人能帮助回答上述问题或仅提供简要概述,我们将不胜感激,

谢谢

答案1

在 IBM PC 时代,使用 ISA 总线时,每个设备必须使用不同的地址。通常它们有硬件跳线或 DIP 开关,您可以配置它们来更改地址以避免冲突。随着 PCI 总线的出现,系统 BIOS 自动配置硬件地址,为每个设备分配一个唯一的地址。

如果 oprom 挂接中断,它将指向 oprom 所在的指定地址内的地址。对于 VGA bios,该地址通常在 0xC0000 块内。使用 msdos 调试器,您可以检查中断向量表以查看入口点,然后开始反汇编那里的指令以查看它们做了什么。

相关内容