BIOS中断如何与保留的硬件中断冲突?

问题描述 投票:1回答:1

我正在阅读一段内核自举程序代码(来自Stanford的CS140 Pintos OS:]

# Configure serial port so we can report progress without connected VGA.
# See [IntrList] for details.
        sub %dx, %dx                    # Serial port 0.
        mov $0xe3, %al                  # 9600 bps, N-8-1.
                                        # AH is already 0 (Initialize Port).
        int $0x14                       # Destroys AX.

处理器正在实地址模式下执行这些指令。大概是通过找到中断向量表的第21个(index = 0x14)条目并在那里执行处理程序来处理该中断的。根据this source,中断表由BIOS在实模式下初始化。 This Wikipedia page列出了可用的BIOS中断,包括上面使用的中断。

我的困惑是,列出的中断例外编号与Intel reference(第20-6页)(并在this Wikipedia page中重复)的实模式保留中断的描述实质上冲突]]

那些中断号如何消除冲突?

我正在阅读一部分内核引导加载程序代码(来自Stanford的CS140 Pintos OS):#配置串行端口,以便我们可以在不连接VGA的情况下报告进度。 #有关详细信息,请参见[IntrList]。 sub%...

assembly x86 serial-port interrupt bios
1个回答
0
投票

我认为传说可以追溯到IBM制造PC时,他们并没有去阅读intel体系结构手册。从第一个8086年开始,英特尔保留了前32个向量供硬件使用。 IBM指定PC BIOS忽略了这一点,并以16(0x10-视频服务)启动服务;在向量5处有一个奇怪的字符,用于打印视频屏幕的当前页面。向量5由边界检查指令使用。

© www.soinside.com 2019 - 2024. All rights reserved.