预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共46页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

7.3中断技术图7.10中断过程示意图2.中断源 任何能够引发中断的事件都称为中断源,可分为硬件中断源和软件中断源两类。 硬件中断源主要包括外设(如键盘、打印机等)、数据通道(如磁盘机、磁带机等)、时钟电路(如定时计数器8253)和故障源(如电源掉电)等; 软件中断源主要包括为调试程序设置的中断(如断点、单步执行等)、中断指令(如INT21H等)以及指令执行过程出错(如除法运算时除数为零)等。3.中断处理过程 对于一个中断源的中断处理过程应包括以下几个步骤, 即中断请求、中断响应、保护断点、中断处理和中断返回。 1)中断请求 中断请求是中断源向CPU发出的请求中断的要求。 软件中断源是在CPU内部由中断指令或程序出错直接引发中断;硬件中断源必须通过专门的电路将中断请求信号传送给CPU,CPU也有专门的引脚接收中断请求信号。例如,8086/8088CPU用INTR引脚(可屏蔽中断请求)和NMI引脚(非屏蔽中断请求)接收硬件中断请求信号。一般外设发出的都是可屏蔽中断请求。图7.11中断请求与屏蔽接口电路2)中断响应 响应时刻:CPU在每条指令执行的最后一个时钟周期检测其中断请求输入端,判断有无中断请求,若CPU接收到了中断请求信号,且此时CPU内部的中断允许触发器的状态为1,则CPU在现行指令执行完后,发出INTA信号响应中断。 从图7.11中可以看到,一旦进入中断处理,立即清除中断请求信号。这样可以避免一个中断请求被CPU多次响应。 图7.12给出了CPU内部产生中断响应信号的逻辑电路。对于8086/8088CPU可以用开中断(STI)或关中断(CLI)指令来改变中断允许触发器(即IF标志位)的状态。图7.12CPU内部设置中断允许触发器3)保护断点 CPU一旦响应中断,需要对其正在执行程序的断点信息进行保护,以便在中断处理结束后仍能回到该断点处继续执行。对于8086/8088CPU,保护断点的过程由硬件自动完成,主要工作是关中断、将标志寄存器内容入栈保存以及将CS和IP内容入栈保存。保护现场和恢复现场一般用PUSH和POP指令实现,所以要特别注意寄存器内容入栈和出栈的次序。 4)中断处理 中断处理的过程实际就是CPU执行中断服务程序的过程。用户编写的用于CPU为中断源进行中断处理的程序称为中断服务程序。由于不同中断源在系统中的作用不同,所要完成的功能不同,因此,不同中断源的中断服务程序内容也各不相同。例如,对于图7.11所示的输入设备,其中断服务程序的主要任务是用输入指令(IN)从接口中的数据端口向CPU输入数据。5)中断返回 执行完中断服务程序,返回到原先被中断的程序,此过程称为中断返回。为了能正确返回到原来程序的断点处,在中断服务程序的最后应专门放置一条中断返回指令(如8086/8088的IRET指令)。中断返回指令的作用实际上是恢复断点,也就是保护断点的逆过程。7.3.2中断优先级和中断的嵌套 1.中断优先级 中断请求是随机发生的,当系统具有多个中断源时,有时会同时出现多个中断请求,CPU只能按一定的次序予以响应和处理,这个响应的次序称为中断优先级。对于不同级别的中断请求,一般的处理原则是: (1)不同优先级的多个中断源同时发出中断请求,按优先级由高到低依次处理。(2)低优先级中断正在处理,出现高优先级请求,应转去处理高优先级请求,服务结束后再返回原优先级较低的中断服务程序继续执行。 (3)高优先级中断正在处理,出现低优先级请求,可暂不响应。 (4)中断处理时,出现同级别请求,应在当前中断处理结束以后再处理新的请求。2.中断优先级的确定 在微机系统中通常用三种方法来确定中断源的优先级别,即软件查询法、硬件排队电路法和专用中断控制芯片法。本节简要介绍前两种方法,第三种方法将在本章的最后一节作详细介绍。 1)软件查询法 软件查询法需要简单的硬件电路支持。以8个中断源为例,其硬件电路如图7.13所示,将8个外设的中断请求组合起来作为一个端口(中断寄存器),并将各个外设的中断请求信号相或,产生一个总的INT信号。图7.13软件查询法的硬件电路图7.14软件查询方式的流程图对于图7.13所示电路,设中断寄存器端口号为n,则软件查询的程序段如下: IN AL,n TEST AL,80H ;1号外设有请求? JNZ II1 ;有,转1号中断服务程序 TEST AL,40H ;2号外设有请求? JNZ II2 ;有,转2号中断服务程序 可以看出,采用软件查询方式,各中断源的优先级是由查询顺序决定的,最先查询的设备,其优先级最高,最后查询的设备,其优先级最低。 采用软件查询方式的优点是节省硬件。但是,由于CPU每次响应中断时都要对各中断源进行逐一查询,所以其响应速度较慢。对于优先级较低的中断源来说,该缺点更为明显。2)硬件排队电路 采