Assembly 两个“;int 0x10";命令,一个在bios中,一个在处理器中

Assembly 两个“;int 0x10";命令,一个在bios中,一个在处理器中,assembly,bios,Assembly,Bios,我在《英特尔开发人员手册》中读到,“int 0x10”表示浮点错误,但在bios服务中读到的某个地方,“int 0x10”表示视频显示服务,这是矛盾的吗?在X86体系结构中,中断处理程序是在中断描述符表(IDT)中定义的 在读取模式下,IDT由256个四字节实模式指针组成。当系统启动时,BIOS将初始化此IDT以为实模式程序提供一些基本服务(例如DOS代码/OS引导代码)。这些处理程序都是在BIOS中定义的 稍后,操作系统引导代码可能会将处理器切换到保护模式并加载其新的IDT。这次IDT是存储在

我在《英特尔开发人员手册》中读到,“int 0x10”表示浮点错误,但在bios服务中读到的某个地方,“int 0x10”表示视频显示服务,这是矛盾的吗?

在X86体系结构中,中断处理程序是在中断描述符表(IDT)中定义的

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

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


因此,这并不矛盾,因为第一个int 0x10用于在实模式下调用BIOS服务,然后将其处理传递给操作系统以在保护模式下处理异常。

在X86体系结构中,中断处理程序在中断描述符表(IDT)中定义

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

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

所以这并不矛盾,因为第一个int 0x10用于在实模式下调用BIOS服务,然后将其处理传递给操作系统以在保护模式下处理异常