1.csdn论坛摘要:
http://bbs.csdn.net/topics/390302181
CPU中还设置了一些硬件逻辑,用来完成从响应请求后到转入服务子程序之前的一系列操作,如保存断点和状态字,获取服务子程序的入口地址。这些操作是在响应请求后随即发生的,不可能预先安排在程序中,因而有硬件来完成。我们称这些操作为中断隐指令操作。
1:它说:保存断点和状态字,获取服务子程序的入口地址。这些操作是在响应请求后随即发生的
难道说完成从响应请求后到转入服务子程序之前,可以不做这些操作,还是有些不用这些操作。
2:他说:这些操作是在响应请求后随即发生的,不可能预先安排在程序中,因而有硬件来完成。
软件最后都是由硬件执行的,即软件实质也是硬件操作。那么为什么不可能预先安排在程序中,因而有硬件来完成呢?
中断隐指令并不是指令系统中的一条真正的指令,它没有操作码,所以中断隐指令是一种不允许、也不可能为用户使用的特殊指令。其所完成的操作主要有:
(1)保存断点
为了保证在中断服务程序执行完毕能正确返回原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。断点可以压入堆栈,也可以存入主存的特定单元中。
(2)暂不允许中断
暂不允许中断即关中断。在中断服务程序中,为了保护中断现场(即CPU主要寄存器的内容)期间不被新的中断所打断,必须要关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。
并不是所有的计算机都在中断隐指令中由硬件自动地关中断,也有些计算机的这一操作是由软件(中断服务程序)来实现的。
(3)引出中断服务程序
引出中断服务程序的实质就是取出中断服务程序的入口地址送程序计数器(PC)。对于向量中断和非向量中断,因此中断服务程序的方法是不相同的。
计算机组成原理(蒋本珊)
1.不可以由软件去保护断点,因为当中断以后,cpu的PC值已经被改变了 软件访问不到原来的PC值;但是可以由软件去保护现场,而且好像很多cpu确实也这么做的;恢复断点当然是软件去做的,硬件又不知道你什么时候想返回
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.软件的是顺序执行的,至少是有规律的;但是中断本身就是一个无法预料的事情,程序无法预料何时发生中断,何时执行中断处理函数,所以只能在某个地址写上一段中断处理代码,等中断到来时由硬件将程序强行跳转到你的中断处理函数去处理中断
中断之所以有用,是因为它会立刻停下当前的程序(软件)去做另外一件事。
硬件具有更好的可靠性和实时性。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
中断技术的起源:1956年,IBM 7049机器上首先使用了中断技术,并开始使用“中断”这一术语。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
中断技术原理:http://blog.chinaunix.net/uid-387104-id-1744110.html