二、CPU对中断的响应过程 进入中断周期后,中断响应的过程如下 1.关中断 cPU在响应中断后,发出中断响应信号M,同时 内部自动地关中断,以禁止接受其他的中断请求。 2保护断点 把断点处的标志寄存器F的内容、段寄存器CS值和 指令指针IP值依次压入堆栈保存,以便中断处理完 后能正确地返回到主程序的断点地址,接着执行被 中断的程序
二、CPU对中断的响应过程 进入中断周期后,中断响应的过程如下 ⒈ 关中断 CPU在响应中断后,发出中断响应信号 ,同时 内部自动地关中断,以禁止接受其他的中断请求。 ⒉ 保护断点 把断点处的标志寄存器F的内容、段寄存器CS值和 指令指针IP值依次压入堆栈保存 ,以便中断处理完 后能正确地返回到主程序的断点地址,接着执行被 中断的程序 INTA
CPU对中断的响应过程 3识别中断源 cPU要对中断请求进行处理,必须要找到相 应中断服务程序(处理中断的程序)的入口地 址,这就是中断源的识别
CPU对中断的响应过程 ⒊ 识别中断源 CPU要对中断请求进行处理,必须要找到相 应中断服务程序(处理中断的程序)的入口地 址,这就是中断源的识别
识别中断源有两种方法-1 ■查询中断 当外设没有提出中断请求时,CPU照常执行主程 序,只有在接收到外设的中断请求后cPU才去查询, 以识别提出中断请求的设备,主要采用软件查询。 软件查询是用程序查询的方法,查询中断请求寄存 器的当前值,查询程序依次查询每一个外设的中断 状态位,通过测试该状态位来判断对应的外设是否 发出过中断请求,如果有,则转到相应的中断服务 程序
识别中断源有两种方法-1 ◼ 查询中断 当外设没有提出中断请求时,CPU照常执行主程 序,只有在接收到外设的中断请求后CPU才去查询, 以识别提出中断请求的设备,主要采用软件查询。 软件查询是用程序查询的方法,查询中断请求寄存 器的当前值,查询程序依次查询每一个外设的中断 状态位,通过测试该状态位来判断对应的外设是否 发出过中断请求,如果有,则转到相应的中断服务 程序
识别中断源有两种方法-2 ■向量中断( Vectored Interrupt 又称矢量中断,在具有向量中断的微机系统中, 每个外设都预先指定一个中断向量,当CPU识别出 某个外设请求中断并予以响应时,控制逻辑就将该 外设的中断向量送入cPU,以自动地提供相应的中 断服务程序的入口地址,转入中断服务。用向量中 断来确定中断源主要是用硬件来实现的,通常在微 机系统中采用可编程中断控制器来提供中断向量
识别中断源有两种方法-2 ◼ 向量中断(Vectored Interrupt) 又称矢量中断,在具有向量中断的微机系统中, 每个外设都预先指定一个中断向量,当CPU识别出 某个外设请求中断并予以响应时,控制逻辑就将该 外设的中断向量送入CPU,以自动地提供相应的中 断服务程序的入口地址,转入中断服务。用向量中 断来确定中断源主要是用硬件来实现的,通常在微 机系统中采用可编程中断控制器来提供中断向量
CPU对中断的响应过程 4.保护现场 为了不使中断服务程序的运行影响主程序的状态, 必须把断点处有关寄存器(指在中断服务程序中要使 用的寄存器)内容压入堆栈保护 5.执行中断服务程序 6.恢复现场 即把中断服务程序压入堆栈的现场信息从堆栈中 弹出来,并存入到原寄存器中,这是在中断服务程 序中用POP指令来实现的
CPU对中断的响应过程 ⒋ 保护现场 为了不使中断服务程序的运行影响主程序的状态, 必须把断点处有关寄存器(指在中断服务程序中要使 用的寄存器)内容压入堆栈保护 ⒌ 执行中断服务程序 ⒍ 恢复现场 即把中断服务程序压入堆栈的现场信息从堆栈中 弹出来,并存入到原寄存器中,这是在中断服务程 序中用POP指令来实现的