两个“int 0x10”命令,一个在BIOS中,一个在处理器中

时间:2013-06-05 08:54:53

标签: assembly bios

我在英特尔开发人员手册中读到“int 0x10”表示浮点错误,但我在bios服务中读到的“int 0x10”意味着视频显示服务,是否相互矛盾?

1 个答案:

答案 0 :(得分:1)

在X86架构中,中断处理程序在中断描述符表(IDT)中定义。

在读取模式下,IDT由256个四字节实模式指针组成。系统启动时,BIOS将初始化此IDT,为实模式程序提供一些基本服务(例如DOS代码/操作系统启动代码)。处理程序都在BIOS中定义。

稍后,操作系统启动代码可能会将处理器切换到保护模式并加载其新的IDT。这次IDT是存储在内存中的8字节描述符数组。从这一点来说,OS开始处理中断而不是BIOS。

所以没有矛盾,因为第一个int 0x10用于在实模式下调用BIOS服务,然后将其处理传递给OS以处理受保护模式下的异常。