简述中断处理的过程。指出其中哪些工作是由硬件完成的,哪些是由软件实现的?

简述中断处理的过程。指出其中哪些工作是由硬件完成的,哪些是由软件实现的?,第1张

中断处理的过程是,首先关中断,进入不可再次响应中断的状态;然后保存断点和现场;再让局判别中断源、转向中坦信让断服务程序;接下来开中断,允许更高级中断请求得到相应;然后执行中断服务程序;最后退出中断坦芹,在退出时又要重复关中断、恢复断点和现场、开中断的步骤,返回原程序执行。

其中进入中断时执行的关中断、保存断点等 *** 作一般是由硬件实现的,其余由软件实现。

矢量中断,当cpu读取位于0x18处的IRQ中断指令的时候,系统自动读取对应于该中断源确定地址上的指令取代0x18处的指令。

在中断响应过程中,CPU通过从接口电路获取的中断类型号(中岩渗断向量号)计算对应中断向量在表中的位置,并从中断向量表中获取中断向量,将程序流程转向中断服务程序的入口地址。

中断向量地址,即存储中断向量的存储单元地址,中断服务例行程序入口地址的地址。在PC/AT机中,中断向量为中断服务程序的入口地址,每个中断向量分配4个连续的字节单元,两个高字节单元存放入口的段地址CS,两个低字节单元存放入口的段内偏移量IP。

在PC/AT中,规定内存储器的最低1 KB用来存放中断向量(共256个),这一片内存区为中断向粗首脊量表。

扩展资料

80x86系统把所有的中断向量集中起来,按中断类型号从小到大的顺序存放到存储器的某一区域内,这个存放中断向量的存储区叫做中断向量表,即中断服务程序芹孝入口地址表。

由于中断向量表可以在 *** 作系统层面灵活修改,因此,不同的系统的中断向量表可能是不同的。此外,intel在CPU的保护模式下,占用了0x00 ~ 0x1F共32个中断号,在Linux下,是从0x20开始用于系统自身的中断的,包括8259芯片的中断重置。

参考资料来源:百度百科-中断向量地址

参考资料来源:百度百科-中断向量表

参考资料来源:百度百科-矢量中断

一、主体不同

1、中断服务子程序:是一种服务,是通过执行事先编好的某个特定的程序来完成的。

2、普通子程序:是一个大型程序中的某部份代码,由一个或多个语句块组成。

二、功能不同

1、中断服务子程序:外界发孙中改生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作。

2、普通子程序:负责完成某项特定任务,而且相较于其他代培喊码,具备相对的独立性。

三、特点不同

1、中断服务子程序:为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值。

2、普通子程序:常被使用在汇编语言层级上。子程序的主体是一个代码区块,当被调用时就则判会进入运行。

参考资料来源:百度百科-子程序

参考资料来源:百度百科-中断服务程序


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12341055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存