我正在阅读一段内核引导加载程序代码(来自斯坦福大学的 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.
Run Code Online (Sandbox Code Playgroud)
处理器以实地址模式执行这些指令。据推测,中断是通过找到中断向量表的第 21 个(索引 = 0x14)条目并在那里执行处理程序来处理的。根据这个来源,中断表是由 BIOS 在实模式下初始化的。 此维基百科页面列出了可用的 BIOS 中断,包括上面使用的中断。
我的困惑来自这样一个事实,即列出的中断异常编号与Intel 参考(第 20-6 页)中对实模式保留中断的描述实质上冲突(并且也在此维基百科页面中重复)
这些中断号是如何消除冲突的?