中断处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服务程序;恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。
对应每个中断源设置一个向量。这些向量顺序存在主存储器的特定存储区。向量的内容是相应中断服务程序的起始地址和处理机状态字。在响应中断时,由中断系统硬件提供向量地址,处理机根据该地址取得向量,并转入相应的中断服务程序。
扩展资料
硬件对中断请求作出响应的过程,包括识别中断源,保留现场,引出中断处理程序等过程:
① CPU在当前指令执行结束时,响应中断,进入中断的响应周期;
② 发出二个中断回答信号INTA完成一个中断响应周期;
③ 进行断点及标志保存
如:将段地址(CS),偏移地址(IP)标志FR以及压入堆栈。
④ 读取中断类型号,找到中断源;
⑤ 装入中断服务程序的入口地址(CS,IP)
如果在中断服务程序中要占用一些寄存器进行运算,而在主程序中这些寄存器也是很重要的,为了二者互不干扰,所以在进入中断服务程序时就要保存寄存器的数值,以便在从中断返回后继续正常的往下执行,这种保存寄存器数值的过程就是现场保护。如在8086处理器中,当发生中断时,主程序的指令位置(CS和IP)就必须进入堆栈保存,必要时还要保存所有通用寄存器的数值。当退出中断后,恢复CS和IP以及其他寄存器的数值到和中断执行前的一样,以便程序继续执行。
中断处理过程:(1)保护被中断进程现场。为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值。(2)分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程。保存和恢复现场的意义在于处理完中断请求之后,程序可以返回起始中断点继续进行。
打个比方:
一个程序正在运行,但是有一个紧急事情要先去处理。但是程序是不能放弃现在运行到的阶段,所以在处理紧急事件时(就是中断),那么先要将运行到的地方进行一个现场保护,您可以理解为存储下来。然后去处理中断,中断结束之后要恢复原来的运行到的阶段。那么就需要将促出下来的现场保护给恢复出来。那这个就是恢复现场了。同样,出现多个中断的时候,要视中断的优先级来优先处理。
中断是现在衡量处理器性能重要标准之一。楼主要好好学习!
希望这些能够有所帮助!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)