8088 CPU 具有 256 个中断类型,其中 0-31 为预留中断向量,32-255 为可用中断向量。下面是其中一些常见的中断类型:
0:除法溢出中断
1:单步中断
2:非屏蔽中断
3:断点中断
4:溢出中断
5:边界中断
6:无效 *** 作码中断
7:协处理器不存在中断
8:双重故障中断
9:协处理器段超限中断
10:无法加载协处理器中断
11:协处理器出错中断
12-15:保留中断
中断可以由硬件或软件引起。硬件中断由外部设备发出,例如时钟、键盘、鼠标等。软件中断则是由程序中的中断指令(例如 INT)产生。
当一个中断发生时,CPU 会停止当前执行的程序,并且保存当前的程序状态。然后,CPU 会根据中断类型查找相应的中断处理程序(中断向量),并跳转到中断处理程序执行。中断处理程序可以保存寄存器和状态,然后执行中断服务程序,最后恢复保存的状态,并返回到原始程序中。
中断向量号是一个唯一的标识符,用于标识每个中断类型。在 8088 CPU 中,中断向量号存储在中断向量表(Interrupt Vector Table,IVT)中,该表位于内存地址 0000:0000H 到 0000:03FFH 的位置。要获取中断向量号,CPU 会从 IVT 中读取对应的中断向量。中断向量表包含了每个中断类型的中断处理程序入口地址。例如,中断向量 0 的处理程序入口地址存储在 IVT 中偏移为 0000H 的位置上。如果要触发中断类型 0,CPU 将从该位置读取中断处理程序入口地址,并跳转到该地址执行相应的中断处理程序。
cpu在响应中断前会保护主程序当前指令下面的一条指令的地址。
就是将当前的IP和CS的内容入堆栈。
cpu响应中断之后,将指令地址从堆栈中取出即可找到中断服务子程序入口地址。
CPU响应中断做如下动作:
①将中断类型码放入暂存器保存;
②将标志寄存器内容压入堆栈,以保护中断时的状态;
③将IF和TF标志清0,目的是防止在中断响应的同时又来别的中断,而将TF清0是为了防止CPU以单步方式执行中断处理子程序。
这时要特别提醒,因为CPU在中断响应时自动关闭了IF标志,因此用户如要进行中断嵌套时,必须在自己的中断处理子程序中用开中断指令来重新设置IF;
④保护断点,断点指的是在响应中断时,主程序当前指令下面的一条指令的地址。
因此保护断点的动作就是将当前的IP和CS的内容入栈,保护断点是为了以后正确地返回主程序;
⑤根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,即呆自动转向中断服务子程序。
以上就是关于8088CPU具有哪些中断类型各种中断如何产生,如何得到中断向量号全部的内容,包括:8088CPU具有哪些中断类型各种中断如何产生,如何得到中断向量号、CPU相应中断后得到中断向量号为9,则从()单元取出中断服务程序入口、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)