53中断程序设计 中断传送方式是CPU与外设之间通信的一种有效方法,避 免了CPU反复查询状态、等待外设,提高了CPU的利用率,也 提高了计算机处理各种突发事件或外部事件的能力。 531有关中断的概念 中断:使CPU暂时中断正执行的程序,去处理特殊事件的操作。 )外部设备中断处理过程概述 每当外部设备准备好传输数据时 (1)向CPU发出中断请求; (2)CPU暂停执行当前的程序(响应中断) (3)转去执行输入/输出操作(中断服务) (4)输入/输出完成后返回原程序继续执行(中断返回) 这样就提高了CPU的利用率和计算机的运行效率。 除了外部设备,其他的异常事件也会产生中断请求,不同 的中断请求来自不同的中断源 中断源:发出中断请求,引起CPU中断的事件、来源
5.3 中断程序设计 中断传送方式是CPU与外设之间通信的一种有效方法,避 免了CPU反复查询状态、等待外设,提高了CPU的利用率,也 提高了计算机处理各种突发事件或外部事件的能力。 5.3.1 有关中断的概念 中断:使CPU暂时中断正执行的程序,去处理特殊事件的操作。 1) 外部设备中断处理过程概述 每当外部设备准备好传输数据时: (1) 向CPU发出中断请求; (2)CPU暂停执行当前的程序(响应中断); (3)转去执行输入/输出操作(中断服务); (4)输入/输出完成后返回原程序继续执行(中断返回)。 这样就提高了CPU的利用率和计算机的运行效率。 除了外部设备,其他的异常事件也会产生中断请求,不同 的中断请求来自不同的中断源。 中断源 :发出中断请求,引起CPU中断的事件、来源
80X86处理器的计算机系统有两大类中断源 软件中断:由执行处理器指令引起的中断,也称内部中断。 硬件中断:由计算机故障、异常事件、外部设备的IO请求引 起的中断,也称外部中断。 中断优先级:根据各中断源的重要性(轻重缓急)给中断请 求赋予的等级编号。当有多个中断请求发生时,按 中断优先级顺序响应中断请求。 80X86处理256种类型的中断,编号为0~255,称为中断类型号。 不同的中断类型号标识了不同的中断源。 2) IBM PC的中断源(P143如图55所示) 中断优先级:内部中断→>非屏蔽中断>可屏蔽中断>单步执行 )中断响应和处理流程 ◇在计算机系统中,各中断源产生的中断请求是随机的, CPU如何及时响应和处理各中断请求? CPU每执行完一条指令后都要检测是否有中断请求产生。 8086/8088中断响应和处理流程如图56所示
80X86处理器的计算机系统有两大类中断源: 软件中断:由执行处理器指令引起的中断,也称内部中断。 硬件中断:由计算机故障、异常事件、外部设备的I/O请求引 起的中断,也称外部中断 。 中断优先级 :根据各中断源的重要性(轻重缓急)给中断请 求赋予的等级编号。当有多个中断请求发生时,按 中断优先级顺序响应中断请求 。 在计算机系统中,各中断源产生的中断请求是随机的, CPU如何及时响应和处理各中断请求? 3) 中断响应和处理流程 2) IBM PC 的中断源 (P143 如图5.5所示) 中断优先级:内部中断—>非屏蔽中断—>可屏蔽中断—>单步执行 CPU每执行完一条指令后都要检测是否有中断请求产生。 8086/8088中断响应和处理流程如图5.6所示。 80X86处理256种类型的中断,编号为0~255,称为中断类型号。 不同的中断类型号标识了不同的中断源
532可屏蔽中断(INTR) 中断控制器 Intel8259A管理可屏蔽中断,一片8259A中断 控制器管理8级硬件中断,接收来自8个独立设备的中断请求。 各级中断请求信号IRQn所对应的外部设备如图57a所示 8259A有两个重要的奇存器 中断屏蔽寄存器(21H)、命令寄存器(2OH) 0中断屏蔽寄存器(21H): D7D位分别对应硬件设备的中断请求RQ7-RQ0,是 相应设备的中断许可位。 D,位 0,允许该位对应的设备发出中断请求RQn 1,禁止该位对应的设备发出中断请求IRQn 765432 例:仅允许键盘中断 IRQ7 RQio中断请求 MOV AL,OFDH 打印机 键盘时钟 OUT 21H AL
5.3.2 可屏蔽中断 (INTR) 中断控制器Intel 8259A管理可屏蔽中断,一片8259A中断 控制器管理8级硬件中断,接收来自8个独立设备的中断请求。 各级中断请求信号IRQn所对应的外部设备如图5.7a所示 。 8259A有两个重要的寄存器: 中断屏蔽寄存器(2l H )、命令寄存器(20H) 中断屏蔽寄存器(2l H ) : D7 -D0位分别对应硬件设备的中断请求IRQ7-IRQ0,是 相应设备的中断许可位。 0,允许该位对应的设备发出中断请求IRQn 1,禁止该位对应的设备发出中断请求IRQn。 Dn位= 7 6 5 4 3 2 1 0 IRQ7 IRQ1 IRQ0 中断请求 打印机 键盘 时钟 21H 例:仅允许键盘中断 MOV AL,0FDH OUT 21H ,AL 1 1 1 1 1 1 0 1
②命令寄存器(2OH) 次硬件中断服务结束时,必须由8259A中断控制器的 命令寄存器(20H)发出中断结束命令(EOI=1),否则与 当前中断请求同级的或更低级的中断请求将被当前正处理的 中断请求屏蔽,使其不能被处理器响应。 76543210 20H00 00000 EO位=1,发出中断结束命令 例:中断结束命令EO可以用下面几条指令发出 mov al,20h;准备EO命令 out20h,al;发送EO命令 要使CPU能够地响应和处理某设备发出的中断请求,必须: 0在21H端口将该设备的中断许可位置0,允许该设备发中断请求; e设置中断标志位IF=1,开中断,使CPU能响应该中断请求 最后,中断处理结束时还须发出EOI命令,清除该中断请求
命令寄存器(20H) 一次硬件中断服务结束时,必须由8259A中断控制器的 命令寄存器(20H)发出中断结束命令(EOI=1),否则与 当前中断请求同级的或更低级的中断请求将被当前正处理的 中断请求屏蔽,使其不能被处理器响应。 7 6 5 4 3 2 1 0 20H EOI 位= 1, 发出中断结束命令 例:中断结束命令EOI可以用下面几条指令发出: mov al,20h ;准备EOI命令 out 20h,al ;发送EOI命令 0 0 1 0 0 0 0 0 要使CPU能够地响应和处理某设备发出的中断请求,必须: 在21H端口将该设备的中断许可位置0, 允许该设备发中断请求; 设置中断标志位 IF=1,开中断,使CPU能响应该中断请求; 最后,中断处理结束时还须发出EOI命令,清除该中断请求