1、微型计算机原理 (第六章),主讲教师 赖于树 Email:,重庆三峡学院物理电子工程学院,第六章 中断技术,本章内容6.1 中断的基本概念 6.2 IBM-PC微机中断系统 6.3 可编程中断控制器8259A 6.4 8259A在微机系统中的应用,6.1 中断的基本概念,本章首页,什么是中断,外设中断:键盘、打印机、显示器等 指令中断:INT 10H、INT21H等 硬件故障中断:奇偶错、电源故障等 程序性中断:除法溢出、非法操作码等,中断:是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,转去为该事件服务。服务完毕,再返回去继续运行被暂时中断
2、的程序的过程。,中断源与中断识别,1)中断源:发出中断请求的外部设备或引起中断的内部原因,2)中断识别:确定中断源,实现程序转移,向量中断:中断向量、中断号 查询中断:软、硬件查询确定中断源,3)中断向量与中断向量表,中断向量:中断服务程序入口地址 ,4个字节(偏移地址、段首址) 中断向量表:PA=000H3FFH, 256个;存储结构(中断号,顺序),6.1 中断的基本概念(续),本章首页,4)中断类型号与中断向量指针,类型号:8位,N=00FFH 中断向量指针:PA=4*N,5)中断向量的装入(填写)与修改,装入:系统配置和使用的系统软件负责,用系统功能调用装入(参照修改),6.1 中断的
3、基本概念(续),本章首页, OLD_OFF DW ? OLD_SEG DW ? s s MOV AH,35H MOV AL,N INT 21H MOV OLD_OFF,BX MOV OLD_SEG,ES CLI MOV AH,25H MOV AL,N PUSH DS MOV DX,SEG INT_SEV MOV DS,DX MOV DX,OFFSET INT_SEV INT 21H POP DS STI s,;定义保存原中断向量的2个字单元,;保存原中断向量,;设置新中断向量,6)中断优先级排队方式,按优先级排队 循环轮流排队,7)中断嵌套,完全嵌套 特定完全嵌套,6.2 IBM-PC微机中断
4、系统,分类:硬中断(外部中断)、软中断(内部中断),硬中断(NMI和INTR),1)不可屏蔽中断NMI,本章首页,系统硬中断,不可屏蔽:不受IF状态影响 类型号固定:02H 有效信号:上升沿,紧急故障处理:RAM奇偶校验错、I/O通道校验错、协处理器运算错,6.2 IBM-PC微机中断系统(续),2)可屏蔽中断INTR,可屏蔽:IF=1,开放;IF=0,屏蔽 类型号由8259A提供(PC机08H0FH) 有效信号:高电平,INTR的处理过程,软中断,1)双字节指令形式的中断(INT n),ROM-BIOS中断:INT 10H;INT 16H DOS中断:INT 21H;INT 20H 未定义中
5、断:INT 60H;INT 78H,2)特殊中断,除法溢出中断(N=0) 条件:商超出规定寄存器的表示范围;字(AX),字节(AL),单步中断(N=1) 条件:TF=1;调试工具或程序设置,断点中断(N=3) 条件:调试工具中使用,溢出中断(N=4) 条件:OF=1且执行INTO指令,本章首页,6.2 IBM-PC微机中断系统(续),硬中断与软中断的比较,本章首页,软中断的应用,ROM-BIOS中断DOS中断,中断的处理过程(INTR),不同中断的处理过程区别:获取类型号的方法不同;另,软中断无申请阶段,1)中断申请,2)中断响应,3)中断服务,4)中断返回,CPU执行完每条指令检测INTR;
6、高电平, IF=1,且无DMA请求,当前指令执行完进入响应阶段,执行中断服务程序,执行到IRET恢复断点,返回原程序,中断服务程序的结构 保护现场 STI ;若允许中断嵌套 服务程序主体 恢复现场 中断结束(EOI)命令 IRET,6.2 IBM-PC微机中断系统(续),本章首页,第1个负脉冲:,第2个负脉冲:,6.3 可编程中断控制器8259A,8259A协助CPU完成的工作,接收和扩充外设的中断请求(一片可管理8级中断;两级级联最多管理64级) 优先级排队管理(固定优先级、循环优先级) 控制中断请求的屏蔽与开放 提供中断类型号(向量中断,还可实现查询中断),本章首页,6.3 可编程中断控制
7、器8259A(续),8259A的外部特性和内部结构,1)引脚(28脚),2)内部结构,本章首页,6.3 可编程中断控制器8259A(续),中断请求寄存器(IRR):8位,寄存有请求的中断级,IRi有请求,IRRi=1 正在服务寄存器(ISR):8位,寄存正在服务的中断级,IRi被响应且未服务完,ISRi=1,ISR可能多位同时为1 中断屏蔽寄存器(IMR):8位,寄存中断级的屏蔽情况,IMRi=1,IRi被屏蔽 优先级分析器(PR):由IRR、IMR、ISR的状态确定INT引脚的输出; 优先级编码器+比较电路,中断嵌套,本章首页,6.3 可编程中断控制器8259A(续),级联缓冲器/比较器:级
8、联时传送级联代码;缓冲方式控制传送方向 读写控制逻辑:中断类型号的读取不是读写逻辑控制的,8259A的工作方式,1)中断触发方式,2)连接系统总线的方式,3)中断屏蔽的方式,4)优先级排队的方式,5)中断结束的方式,本章首页,6.3 可编程中断控制器8259A(续),8259A的编程命令及中断操作功能,1)ICW1,4个初始化命令字(ICW14)、3个操作命令字(OCW13);写入到2个端口中同一端口写入多个命令字的区分方式:设置特征位、规定写入顺序,ICW1还实现对8259A的复位,如PC机:边沿触发,单片,MOV AL,13H OUT 20H,AL,2)ICW2,如PC机:类型号08H0F
9、H,MOV AL,08H OUT 21H,AL,确定中断类型号的高五位,本章首页,6.3 可编程中断控制器8259A(续),3)ICW3(级联系统才写入,主、从片格式不同),如图中所示的级联系统,主片的ICW3=24H 从片1的ICW3=02H从片2的ICW3=05H,ID2ID1ID0的编码=i,该从片挂在主片的IRi上,主片:相应的申请端是否挂接从片,从片:该从片的识别码,级联方式的硬件连接,级联方式下工作过程,CPU的操作与单片无任何区别,本章首页,6.3 可编程中断控制器8259A(续),4)ICW4,特定完全嵌套方式(用于级联系统的主片),开放同级和高级中断,上例中,主片若采用特定完
10、全嵌套方式,则允许D打断B的服务,给主片送EOI的条件:从片ISR=00H,5)OCW1(设置IMR),如开放IR1、IR77; 屏蔽IR3、IR76;其他不变,本章首页,6.3 可编程中断控制器8259A(续),6)OCW2 (设置优先级轮换、发EOI命令),如:不指定EOI MOV AL,20H OUT 20H,AL,指定EOI(清除ISR4) MOV AL,64H OUT 20H,AL,2,R、SL、EOI的组合就是OCW2的命令,本章首页,6.3 可编程中断控制器8259A(续),7)OCW3 (设置特定屏蔽方式、查询式中断、读寄存器选择),特定屏蔽方式(开放低级中断),本章首页,6.
11、3 可编程中断控制器8259A(续),查询式中断,读寄存器,不需要接收中断请求,CPU查询8259A,发查询命令(P=1的OCW3)后读查询字(A0=0),再根据查询字内容确定中断源,查询字格式,读IMR:直接对A0=1端口进行读 读IRR、ISR:先选择(RR=1的OCW3)再读,初始为IRR,读IMR: IN AL,21H 读IRR:MOV AL,0AHOUT 20H,ALIN AL,20H 读ISR:MOV AL,0BH OUT 20H,AL IN AL,20H,本章首页,6.4 8259A在微机系统中的应用,8259A编程命令的使用,ICW:初始化时,按顺序接收24个 OCW:工作过程
12、中,动态控制,8259A初始化编程,早期PC机单片系统,端口地址:20H、21H;边沿触发;完全嵌套; 固定优先级;非缓冲;中断类型号:08H0FH,本章首页,6.4 8259A在微机系统中的应用(续),286以上PC机双片级联系统,从片连在主片的IR2上;主从级联信号互连 端口地址,主片:20H、21H;从片:0A0H、0A1H 边沿触发;完全嵌套; 固定优先级;非缓冲;中断类型号,主片:08H0FH;从片:70H77H,MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,04H OUT 21H,AL MOV AL,01H OUT 21H,A
13、L,初始化编程(主),MOV AL,11H OUT 0A0H,AL MOV AL,70H OUT 0A1H,AL MOV AL,02H OUT 0A1H,AL MOV AL,01H OUT 0A1H,AL,初始化编程(从),例题6.1 可屏蔽中断服务程序,在PC机中: 8259A的IRQ0(向量号为08H)中断请求来自定时器8253,每隔55ms产生一次定时中断 该例的 08H 号中断服务程序将显示一个字符串, 10次中断共显示10个字符串 用内存单元(共享变量)在主程序与外部中断服务程序之间传递参数:中断发生的次数 显示信息安排在共同的数据段中,例题6.1 可屏蔽中断服务程序,s_seg s
14、egment stackdb 256 dup(0) s_seg endsd_seg segment intmsg db “ it is A 8259A Interrupt !“,0dh,0ah,0 counter db 0 d_seg endsc_seg segmentassume cs:c_seg,ss:s_seg,ds:d_seg start: mov ax,d_segmov ds,axmov es,axmov ax,s_segmov ss,axmov ax,3508h ;修改中断向量int 21hpush bx ;保存偏移地址push es ;保存段基地址,cli push ds ;保护
15、ds mov dx,offset new08h ;中断入口地址 mov ax,seg new08h mov ds,axmov ax,2508h int 21h pop dsin al,21h ;读IMRpush axand al,0feh ;允许IRQ0(接8253)out 21h,almov counter,0 ;设置中断次数初值sti ;开中断 start1: cmp counter,10jb start1 ;中断10次退出clipop axout 21h,alpop dspop dxmov ax,2508hint 21hstimov ax,4c00hint 21h,例题6.1 可屏蔽中断
16、服务程序,new08h procsti ;开中断push ax ;保护寄存器push bxpush dsassume ds:d_segmov ax,d_segmov ds,ax ;设置数据段DSinc countermov si,offset intmsg ;显示信息call dpstrimov al,20h ;送中断结束字out 20h,alpop ds ;恢复寄存器pop bxpop axiret ;中断返回 new08h endp,dpstri proc ;显示字符串子程序push axpush bx dps1: lodsb ;取一字符cmp al,0 ;判是否结束标志jz dps2mov bx,0mov ah,0ehint 10hjmp dps1 dps2: pop bxpop axret dpstri endpc_seg endsend start,本章首页,本章要点中断、中断向量、向量表的结构、类型号与中断向量的关系 修改中断向量的方法和步骤 PC机中断系统的组成;软中断中几种特殊中断产生的条件 硬中断与软中断的区别 中断的处理过程;中断响应周期中CPU与8259A的操作 8259A的主要特性 8259A写入命令字的区分方式;各编程命令的功能 8259A级联方式下的工作过程 8259A的初始化编程,