【发布时间】:2014-10-29 23:32:18
【问题描述】:
我有三个仅适用于 x86 架构的主要问题,因为我是 intel 80386 微芯片的用户。
这些是我知道的基础知识:中断表从地址 0x0000 开始,因此 int 0x01 指令将搜索地址 0x0001。然后处理器将看到包含在位置 0x0001 中的地址,并期望中断处理程序 0x01 在 0x0001 指向的地址处开始。
所以我的第一个问题是,中断处理程序如何指示自己的结束并告诉 cpu 返回到发出中断的进程。该指标是只有NULL,还是有一个特殊的值来表示处理程序已经完成?
第二个问题:在MS-DOS中,硬件中断0x19是用来重启计算机的。我想知道这个中断的处理程序在哪里。它在 BIOS ROM 中,这就是为什么它被称为“BIOS 中断调用”吗?请向我解释这个术语。此外,由于 MS-DOS 中断 0x21 包含 MS-DOS 功能(如获取和打印字符),它在 RAM 中而不是 BIOS 中,对吗?这是否意味着它不是 BIOS 中断?
最后,我想知道我是否加载了一个带有 16 进制 99 中断的中断表,这意味着 0x99 是最后一个,如果用户执行 0x9A(比 0x99 多一个)会发生什么?
请回答我的这三个问题,因为这些天我非常喜欢系统编程。如果它太长和复杂,我很抱歉。 提前谢谢!
【问题讨论】: