第7章汇编语音.ppt_第1页
第7章汇编语音.ppt_第2页
第7章汇编语音.ppt_第3页
第7章汇编语音.ppt_第4页
第7章汇编语音.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理、汇编与接口技术,(第2版),7.1,7.2,7.3,中断和中断系统,中断控制器8259A,PC机的中断系统和中断指令,第七章 中断技术,7.4,可屏蔽中断服务程序的设计,学习重要复杂的软硬件结合技术,7.1 中断和中断系统,7.1.1. 中断的概念 什么是中断? 与生活场景的比较,正在看书,电话铃响,接电话,继续看书,执行程序,事件发生,事件处理,继续执行程序,中断处理,中断请求及响应,实际场景,计算机,中断返回,中断: CPU暂停现操作,转去处理另一事件,完毕,返回执行暂停的操作。 7.1.2 中断请求与控制和中断源的识别 中断源: 引起CPU中断的事件 中断请求:外部中断源输出信

2、号至CPU中断请求 输入端 中断源识别:根据中断类型码识别 中断控制:外部中断屏蔽/允许,即IF=0/IF=1 (指令CLI/STI),7.1.3中断系统的功能 实现中断及返回; 实现优先权的排列; 实现中断嵌套,7.1.4 CPU对外部可屏蔽中断的响应及中断过程,CPU现指令结束后,IF=1,有中断请求响应,中断处理: (1)关中断 (IF=0,TF=0,机器自动) (2)保留断点(当前F,CS,IP内容入栈,机器自动) (3)转中断程序(其段地CS,偏地IP,机器自动) (4)保护现场(相关寄存器,人工) (5)中断服务(执行程序,机器自动) (6)恢复现场(相关寄存器,人工) (7)中断

3、返回,IRET(IP、CS、F内容出栈,返回中断发生时下一指令处, 机器自动且IF=1) # 中断嵌套?在(5)中加入STI指令,开中断,中断时栈操作:,IPL,IPH,CSL,CSH,FL,FH,SP,IP,CS,FLAG,保留断点, 进栈,执行IRET, 断点出栈,堆栈操作:栈操作指令PUSH、POP 子程序调用CALL、返回RET 中断断点保留、返回IRET,7.1,7.2,7.3,中断和中断系统,中断控制器8259A,中断系统和中断指令,第七章 中断技术,7.4,可屏蔽中断服务程序的设计,7.2 中断控制器8259A,可编程芯片,为80 x86的中断管理器件8259A的基本功能: 2个

4、端口,一片可管理8级中断; 级联:最多64级; 可中断屏蔽或允许; 可中断向量输送; 可优先权管理; 多种工作方式,编程选择,7.2.1 8259A的组成和接口信号,说明:,1,中断请求寄存器IRR和中断服务寄存器ISR IRR:外部有中断请求,IR0IR7对应置1 (1个或多个) ISR:保存正在服务中的中断状态 2,优先权分析器PR 优先权相对最高的中断入围 3,中断屏蔽寄存器IMR 决定IRR锁存的中断请求进入PR? Di位置1IRi中断被屏蔽;置0表示允许 (与CPU中F寄存器IF位不同),说明:,4,INT中断请求 向CPU(INTR*引脚)或主8259A(IR0IR7引脚)提中断请

5、求 5,INTA*中断响应 由CPU(INTA*引脚)来 6,数据总线缓冲器 传送控制字、状态、中断向量,说明:,7,读/写控制逻辑 A0:端口选择线(地址,可/非连接地址总线中A0) 读,IN CS*=0,A0=0,RD*=0时,CPU读8259 IRR、ISR、IMR状态 写,OUT CS*=0,A0=0(1),WR*=0时,CPU向8259写ICW、OCW命令字 8,级联缓冲/比较器 一般:SP*/EN*=1,表8259为单片/主片 SP*/EN*=0,表8259为从片,7.2.3 8259A的级联连接 单片级联多片,最多1主+8从,7.2.2 8259A处理中断的过程 步骤(1)(7)

6、 P248,级联,从片INT主片IRi,主片INTCPU的INTR 主片CAS0CAS2(出)从片CAS0CAS2(入) 非缓冲方式时(8259的D7D0与CPU的D7D0直连),主片SP*/EN*1,从片SP*/EN*0 CPU来INTA*各片8259 INTA* 例:单片8259最多可管理( )级可屏蔽中断,5级级联最多可管理( )级。,7.2.4 8259A的命令字,1. 初始化命令字ICW 工作前按ICW1ICW4顺序写入 ICW1和ICW2、 ICW4必写 ICW3级联时使用,ICW1(A0=0,中断触发、级联选择),表示可以任意 为1为0都可以(建议为0),1只能为1,作为标志,中

7、断触发方式: LTIM1,电平触发方式 LTIM0,边沿触发方式,规定单片或级连方式: SNGL1,单片方式 SNGL0,级连方式,是否写入ICW4 IC41,要写入ICW4 IC40,不写入ICW4,ICW2 (A0=1,中断类型码设置),设置中断向量号 T7T3为中断向量号的高5位 低3位由8259A自动确定: IR0为000、IR1为001、 IR7为111,ICW3 (A0=1,级联方式,主从不同),级连命令字 主片8259A:Si1对应IRi接有从片;否则没有连接从片 从片8259A:ID0ID2编码说明从片INT引脚接到主片哪个IR引脚,ICW4 (A0=1,方式控制),嵌套方式:

8、 特殊全嵌套方式(SFNM1) 普通全嵌套方式(SFNM0),数据线的缓冲方式: 缓冲方式(BUF1) 非缓冲方式(BUF0),主片/从片选择: 主片(M/S=1) 从片(M/S=0),中断结束方式: 自动中断结束(AEOI1) 非自动中断结束(AEOI0),微处理器类型: 80 x86(D01) 8位8080/8085(D00),例7.1 试对8259A设置初始化命令字:系统中仅用一片8259A, 中断请求信号采用边沿触发方式;中断类型码为08H0FH; 用全嵌套、缓冲、非自动结束中断方式。8259A的端口地址 为20H(A0=0)和21H(A0=1)(内端口图6-6,P215) 该片825

9、9A的初始化设置的程序段如下:,MOV AL,13H ;AL=00010011 OUT 20H,AL ;ICW1,单片,边沿触发,不写ICW3,写ICW4 MOV AL, 8 ; AL=00001000 OUT 21H,AL ;ICW2,中断类型码为08H0FH(送本组类型码初值) MOV AL, 0DH ;AL=00001101 OUT 21H, AL ;ICW4,全嵌套,缓冲,非自动结束,例7.2 试对一个主从式8259A进行初始化命令字的设置。从片的 INT与主片的IR2相连。从片的中断类型码为70H77H,端口地 址为A0H和A1H;主片的中断类型码为08H0FH,端口地址为 20H和

10、21H。中断请求信号采用边沿触发,采用全嵌套、缓冲、 非自动结束中断方式。,主片初始化程序段: MOV AL, 11H ; ICW1 OUT 20H, AL ;边沿触发,级连方式,写入ICW4 MOV AL, 8 ;ICW2 OUT 21H, AL;设置中断类型码08H0FH MOV AL, 4 ; ICW3 OUT 21H, AL ;IR2接有从片 MOV AL, 0DH ; ICW4 OUT 21H, AL ;缓冲方式,主片,从片初始化程序段: MOV AL, 11H OUT 0A0H, AL MOV AL, 70H ; ICW2: 中断类型码为70H77H OUT 0A1H, AL MO

11、V AL, 2 ;ICW3:从片连接主片的IR2 OUT 0A1H, AL MOV AL, 9 OUT 0A1H, AL,# 80 x86 PC已设定8259A的初始化命令字,2. 操作命令字OCW,8259A工作期间,可随时接受OCW OCW分为:OCW1OCW3 写入时无顺序要求,需要时写入某个OCW,OCW1 (A0=1,中断屏蔽),对IMR屏蔽命令字 Mi为1禁止IRi中断; 为0允许IRi中断。,OCW2 (A0=0,中断结束、优先权改变),R、SL和EOI配合使用 产生中断结束EOI命令和改变优先权顺序,L2L0的3位编码 指定IR引脚,OCW3 (A0=0,读IRR/ISR、控制

12、特殊屏蔽),ESMM、SMM 设置特殊屏蔽方式,P、RR和RIS 规定随后读取的状态字含义,#. 命令字的区别(端口地址2个,命令字7个,矛盾), 地址区别: A0=0ICW1,OCW2OCW3, A0=1ICW2ICW4,OCW1 读写顺序区别:ICW2ICW3ICW4 (同一地址) 特征位区别: OCW2OCW3,ICW1 (同一地址) 解决端口地址少,命令字多矛盾,7.1,7.2,7.3,中断和中断系统,中断控制器8259A,中断指令和中断系统,第七章 中断技术,7.4,可屏蔽中断服务程序的设计,PC机中断系统: 1,可处理256个中断 2,用中断向量号(中断类型码) 00HFFH区别

13、3,借助8259A管理可屏蔽中断,7.3 中断指令和中断系统,7.3.1 中断指令,INT N:类型(中断源的编号)N中断 (N :20H0FFH中一部分) INTO:类型4中断 (溢出中断,OF=1时,类似INT 04H) IRET:中断返回 (中断服务程序最后) # RET与IRET:同:出栈,弹出CS、IP 异:IRET还弹出F,7.3.2. 外部中断 (外脉冲引起),1, 可屏蔽中断 (受IF控制) INTR引脚,异步,当前指令执行完若IF=1响应中断(且自动IF=0); 若IF=0不响应 # 可禁止 (IF=0) 可再中断 (嵌套,服务程序中STI) 一个引脚INTR (扩展,825

14、9A),中断标志IF:,IF0: 关中断、禁止中断、中断屏蔽 系统复位,IF0 任一中断被响应,IF0 执行指令CLI,IF0 IF1: 开中断、允许中断、中断开放 执行指令STI,IF1 执行指令IRET恢复IF=1,2, 非屏蔽中断 (不受IF控制), NMI引脚,异步,当前指令执 行完响应中断(自动IF=0) # 不可禁止 不可再中断,优先权高于INTR 中断向量02H,CPU自己启动;与外因素无关;当前指令执行完 内部中断有3种: 1.故障:指令执行前检测到异常而产生的中断 (调度机制) 2.陷阱:指令执行过程中引起的中断 (除法/溢出/断点/单步) 3.异常中止:硬件错误、非法的系统

15、调用 (重新启动),7.3.3 内部中断 (异常),中断优先权: 内部中断 除法错中断 (类型0) 溢出中断 : INTO (类型4) 类型N中断: INT N (类型20HFFH) 非屏蔽中断: NMI (类型2) 可屏蔽中断:INTR (类型20HFFH) 单步中断 (类型1),7.3.4 中断类型码及中断种类,表7-1中断的中断类型码及中断种类,中断类型码与中断种类,7.3.5 中断向量表和中断描述符表,实地址使用中断向量表(学习); 虚地址保护使用中断描述符表,中断向量(类型码)中断服务程序其入口地址(CS:IP)中断向量表,中断向量表(局部),00004H,00000H,1)非堆栈区

16、; 2)表中内容编程装入; 3)内容为类型0中断对应中断服务程序入口地址(CS:IP); 4)每一类型占4字节,低字为IP值,高字为CS值 5)类型码地址(00000H),表地址00000H003FFH,计1K (0000H:0000H0000H:03FFH) 类型码(中断向量N)256个:00HFFH # 1K地址: 中断向量表, 内存区, A19A0 I/O端口地址,非内存区, A9A0 类型码中断服务程序入口地址(间接) 类型码(中断向量N)4=类型码地址(偏地) 中断服务入口地址,中断向量表(整体),如 INT FFHN=0FFH4N=03FCH003FCH(类型码地址),4N 003

17、FCH,4N+1 003FDH,4N+2 003FEH,4N+3 003FFH,中断向量FFH对应 中断服务程序入口地址 CS:IP=5116H:3000H,类型码地址(中断向量表指针)00060H起存放4200H,00062H起存放1080H,问:对应中断类型码是多少?中断服务程序入口地址是什么?,例:,4N 00060H,4N+1 00061H,4N+2 00062H,4N+3 00063H,答: 4N=60HN=60H/4=18H=24 中断服务程序入口地址 CS:IP=1080H:4200H, 即14A00H,例7.3 若80 x86系统采用的8259A的中断类型码为88H,试问: 这

18、个中断源的中断请求信号应连向8259A的哪个中断输 入端?中断服务程序的段地址和偏移地址应分别填入哪两 个字单元?,根据ICW2可知,中断类型码的低3位即是8259A IRi的i值,而88H的低3位为000,故中断源的中断请求信号连 接到8259A的IR0输入端。 中断服务程序的偏移地址和段地址分别填入4n和4n+2 两个字单元,而488H=220H,故段地址填入00222H字单 元(即00222H和00223H两个字节单元),偏移地址填入00220H字单元(即00220H和00221H两个字节单元)。,7.3.6 中断响应和处理过程,中断响应过程如右图,7.1,7.2,7.3,中断和中断系统

19、,中断控制器8259A,中断指令和中断系统,第七章 中断技术,7.4,可屏蔽中断服务程序的设计,7.4 实地址方式下的可屏蔽中断服务程序设计,外中断:外信号825980 x86(INTR),响应? 响应:CPU的INTA*8259,发类型码CPU去中断服务程序 编程要点: 1、知中断类型码类型码地址中断服务程序入口地址填入中断向量表; 2、写8259命令字(ICW系统设置,OCW人工),对中断屏蔽和中断结束进行处理。,下面以PC XT机为例说明装入的方法: PC XT 微机系统仅使用1片8259A,它的8个中断输入端 IR0IR7分别定义为IRQ0IRQ7。 PC XT机留给用户使用的可屏蔽中

20、断为IRQ2,从其总线 插座的B4引出(P182图4-17 ISA总线中IRQ9)。 PC XT机初始化8259A时写入的中断类型码为08H0FH, 分别对应IRQ0IRQ7,所以IRQ2的中断类型码为0AH。,7.4.1 中断服务程序入口地址的装入,SUB AX,AX MOV ES,AX ;ES=0000H(段地) MOV AX,OFFSET INT-SUB;中断服务程序入口偏地AX MOV ES:28H,AX ;0AH40028H,偏地中断向量表 MOV AX,SEG INT-SUB ;中断服务程序入口段地AX MOV ES:2AH,AX ;段地中断向量表,中断服务程序为INT-SUB(入

21、口地址CS:IP),ES:0028H,中断向量表,7.4.1 中断服务程序入口地址的装入,25H号功能调用:将中断服务程序入口地址中断向量表 AH: 装调用号 (25H) AL: 装中断向量 (类型码) DS:DX:装中断程序入口地址(CS:IP值) 装入程序段如下: MOV AX,SEG INT-SUB MOV DS,AX MOV DX,OFFSET INT-SUB MOV AX,250AH ;AH=25H, AL=0AH INT 21H,7.4.1 中断服务程序入口地址的装入,7.4.2 中断屏蔽与中断结束的处理,1,中断前可修改系统设置中断屏蔽字,中断后恢复 2,8259: IMR的Mi

22、=0,允许IRi中断, IMR的Mi=1,屏蔽IRi中断 3,为非自动结束中断方式,例7.5 由PC XT机外部产生中断请求的简单中断程序。,系统将8259A的中断输入线IR0IR7初始化为由低变高 的边沿触发,通过一开关(单稳、防抖)将中断请求信号接到 PC XT总线的引脚B4,即IRQ2上。该开关先输出低电平,运 行程序显示提示信息“WAIT INTERRUPT”后再将开关输出高 电平,使IRQ2的电平由低变高,于是向8259A的中断输入线 发出了中断请求信号。成功后再将开关返回到低电平。,该程序可以用到任何可以产生中断请求信号的外设接 口的电路上。,分析: 8259A的端口地址为20H和

23、21H,要完成工作: 1、中断服务程序入口地址装入 2、使用的命令字有屏蔽字OCWl和中断结束命令 字OCW2,进行中断屏蔽和中断结束处理,stack segment stack stack dw 32 dup(?) stack ends data segment DA1 DB WAIT INTERRUPT ,0AH,0DH, $ DA2 DB INTERRUPT PROCESSING, 0AH, 0DH, $ DA3 DB PROGRAM TERMINATED NORMALLY, 0AH, 0DH, $ data ends,程序:,code segment begin proc far assum

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论