导图社区 八、中断和异常
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第八章 中断和异常
编辑于2021-11-29 00:04:06《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第八章 中断和异常
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第二章、微处理器结构及微型计算机工作原理
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第六章 半导体存储器
社区模板帮助中心,点此进入>>
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第八章 中断和异常
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第二章、微处理器结构及微型计算机工作原理
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。 参考教材为西安电子科技大学出版社的《微型计算机原理(第六版)》,此外还参考了XJTU段战胜老师的教学PPT。 本导图为第六章 半导体存储器
八、中断和异常
概述
程序中断
硬—外—中断—异步
软—内—异常/中断指令—同步
中断源 当前有效
中断技术
专用中断线/标志
矢量中断技术--x86
中断控制器8259A
中断类型码 中断优先权
中断服务程序ISR
保护现场、中断服务、恢复现场、中断返回
断点 中断现场
现行程序被中断时的下一条指令的地址,又称断点地址
CPU转去执行中断服务程序前的运行状态(CPU内部各寄存器、断点地址)
中断
内中断(软中断)
INTO(被0除,OF=1),debug单步中断,INTn
外中断(硬中断)
CPU的INTR引脚或NMI引脚发出中断申请引起的中断
INTR高电平 NMI上升沿
IF=1可以响应INTR IF不能屏蔽NMI引脚
异常
故障(Fault)
陷阱(Trap)
中止(Abort)
中断和异常的暂时屏蔽
FLAGS中的IF=0,屏蔽外部可屏蔽中断。
系统正处理一个非屏蔽外部中断。
执行以堆栈段寄存器SS为目的寄存器的指令(MOV/POP)时 须等到执行完下一条指令,确保完整地更新一个堆栈指针(SS和SP) 【故,编程时应保证更新SS的下一条为更新SP】
CPU执行封锁指令LOCK,CPU将封锁指令和后一条指令视为一个整体
EFLAGS中的RF=1,忽略排错故障 (resume flag 重新启动标志)
中断及异常的优先级
80x86
优先级高低的判断,优先级相同
中断嵌套
中断优先级—中断优先次序
实方式下的中断
中断类型码
8位 256个
中断矢量
中断服务程序的第一条指令的逻辑地址 段+偏移,所以中断矢量长度为4B(思why)
中断向量表
256 * 4B,存储器中地址最低的1024单元,00000H~003FFH 前两个单元为偏移,后两个单元为段基址
CPU正在执行一条指令,执行完本条指令,响应中断
带重复前缀的串指令
对MOV和POP指令,处理对象为段寄存器, 以及STI和IRET指令
中断的响应过程
标志寄存器FLAGS的内容压入堆栈
清除IF、TF,屏蔽INTR,禁止单步中断
interrupt/trap flag
代码段寄存器CS的内容压入堆栈
程序指针IP的内容压入堆栈
注意先后
中断矢量取出,加载到IP、CS
程序转移到中断服务子程序
中断向量表的初始化
中断优先级管理器 可编程中断控制器 8259A PIC
中断申请管理接口的主要功能
向CPU的引脚INTR发中断申请信号
送中断类型号
8259A的引脚、编程结构和工作过程
8259A的引脚
D0~D7送中断类型号
INT、\INTA
请求接请求,应答接应答
A0片内寻址输入线
单片8259A可以管理8个外部中断源
9片8259A构成的1主片8从片的级联系统可以管理64个中断源
8259A的编程结构
ISR 中断服务状态寄存器
ISR中的某位为1,表示CPU正在响应此级中断
IRR 中断请求寄存器
只可读不可写
IRn引脚出现高电平/上跳沿---置1 在相应的响应周期中清0
IMR 中断屏蔽寄存器
IMR对应位为 0,允许中断申请进入优先级裁决器 为 1,不允许进入,中断申请被IMR屏蔽
PR优先级裁决器
优先级裁决器PR 据新进入的中断申请和 ISR的内容,决定是否发中断申请信号
4个初始化命令寄存器 ICW1~ICW4
在计算机系统启动时在初始程序设置,
一旦设定,一般在系统工作过程不再改变
4个分别控制:芯片控制、中断类型号、主从片关系、方式控制
3个操作命令寄存器 OCW1~OCW3
在应用程序中设定,动态地控制CPU处理中断的过程
8259A 的工作过程
处理外设中断申请,决定是否向CPU发中断申请信号。
若发中断申请信号,且CPU响应,则在CPU中断响应周期送出中断类型号
CPU接收到 INTR上的中断申请信号后
IF=0
IF=1,处理完当前的指令后, 进入中断响应周期
通过\INTA 引脚发出两个负脉冲信号,从数据总线上获取中断类型号,进入中断响应
8259A在接收到第一个\INTA中断响应信号后
IRR、ISR
8259A在接收到第二个\INTA中断响应信号后
ICW2--->CPU,进入中断响应
CPU响应中断过程
① 取中断类型号N
② 当前PSW的内容入栈
PSW-程序状态寄存器
③ 清IF、TF标志为0
④当前CS的内容入栈
⑤ 当前IP的内容入栈
⑥ 取内存单元( 0 : N ×4 )字内容送IP
⑦ 取内存单元( 0 : N ×4 + 2 )字内容送CS
此时CS:IP指向中断程序的入口,开始执行中断程序
执行完中断子程中最后一条指令IRET后,返回被中断处,继续执行被中断的程序
8259A的编程
初始化命令字 参考课本P337流程图
ICW1
D4=1特征字,写入地址号A0=0,为偶数
LTIM=1,中断请求高电平有效;=0,上跳沿有效
SNGL=1单片;=0,级联
IC4表明后面还需设置ICW4
ICW2
低三位必须为0,A0=1,奇地址
ICW2设置的是中断向量号基值,低三位为IRn对应的二进制数
ICW3
指明主片的哪个IRn与从片的INT相连,A0=1,奇地址, 主片对应位若为1,则说明该引脚有从片 从片低三位表明其连接的是主片的哪个引脚,高5位为0
ICW4
A0=1,奇地址 由IC4决定是否设置,高三位为0
操作命令字
OCW1/IMR
A0=1,奇地址
OCW2
A0=0,D4D3=00
R=1,中断优先级自动循环模式;R=0,优先级从0到7固定
EOI=1,表明OCW2操作字的任务之一为结束中断命令
OCW3
A0=0,D4D3=01
8259A的编程方法
1. 设置中断屏蔽字
2. 发中断结束命令EOI
在中断响应后,对 ISR中相应位的清0很重要,它是8259A认为中断结束的标志
初始化时可以设置
自动清0方式
硬件实现
非自动清0方式:往OCW2写入20H
8259A在微机系统中的应用
8259A工作方式设置
中断触发方式
边沿触发方式
电平触发方式
中断级联方式
非缓冲方式
缓冲方式:8259A通过总线驱动器和数据总线相连
中断优先方式
固定优先级方式
循环优先级方式
中断嵌套方式
一般全嵌套方式
特殊全嵌套方式:不能响应较低级中断。但能响应本级或较高级中断
中断屏蔽方式
普通屏蔽方式
特殊屏蔽方式,OCW3 动态改变系统的优先级结构
结束中断处理的方式
中断自动结束方式
一般的中断结束方式 (普通的EOI命令)
特殊的中断结束方式 (特殊的的EOI命令)
中断嵌套问题
内中断引起的嵌套
内中断引起的嵌套不受 IF 和 8259A 的控制,
嵌套的层次受限于堆栈的大小
可屏蔽硬中断引起的嵌套
IF+8259A+堆栈大小
可屏蔽硬中断嵌套的条件
有可屏蔽硬中断源产生
中断子程开中断,即用 STI 指令使 IF = 1,因为CPU响应中断过程中,将 IF 标志清0
STI:set interrupt
新的中断申请具有更高的优先权