ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:20.94KB ,
资源ID:17984574      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17984574.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第七章中断与中断控制习题选解Word格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第七章中断与中断控制习题选解Word格式.docx

1、 7.12某80X86系统中设置三片8259A级联使用,一片为主,两片为从,从片分别接人主片的IR2和IR4。若已知当前主8259A和从8259A的IR5上各接有一个外部中断源,其中断向量号分别为75H,85H,95H。假设它们的中断入口地址均在同一段中,段基址为4310H,偏移地址分别为1230H,2340H,3450H;所有中断都采用边沿触发方式、全嵌套方式、正常EOI结束方式。 (1)试画出该系统的硬件连线图; (2)试编写全部初始化程序。(1)此题硬件连线要考虑各8259A与CPU的连接,还要考虑三片8259A间的级联连 接。8259A与CPU连接的方法是: 端口选择线与一般与MPU低

2、位地址线A0直接相连,也可与其他Ai相连。 数据线D0D7与MPU数据线D0D7直接相连。 片选线CS与余下MPU高位地址线经译码后产生的片选信号相连。 WR、INTR分别与控制总线组合形成的IOR、IOW和中断响应信号INTR相 RD、 连。 主片的INT与MPU的INTR直接相连。 8259A级联连接方法是: 从片的INT与主片的某个IRi直接相连。 主片的CAS2CAS0与各从片的CAS2CAS0直接相连。 SP/EN则取决于是采用缓冲还是非缓冲方式。 本题采用非缓冲方式,主片SP/EN接+5V,从片SP/EN接地。由此画出硬件连线图,如图7.3所示。 (2)初始化程序应包括两部分内容,

3、即主、从片的初始化和填写相关中断向量表。对主片编程时要注意。在多片级联方式下,系统要工作在完全嵌套方式,主片必须设置为特殊全嵌套方式,以便同级中断能打断同级中断。因为在多片级联方式下,从片的8个中断源是共用主片的一个中断级,而实际上从片的8个中断源也有优先级区别。假定当前正在服务的中断级是从片的某个中断级,若当CPU正在为该中断源服务时,该从片又向主片提出中断请求,此时对主片而言是同一级中断请求,但对从片来说却是出现了一个高优先级中断请求,应该优先处理, 假定主片、从片1、从片2地址分别为:PORT00. PORT01 , PORT10, PORT1l , PORT20, PORT21 ,程序

4、段如下: :初始化8259A主片 MOV AL,11H ;写ICW1边沿触发、多片级联、写ICW4 OUT PORT00, AL MOV AL,70H ;写ICW2,主片中断向断号为70H-78H OUT PORT01 . AL MOV AL.,000l0l00B ;写ICW3, IR2,IR4,接有从片 OUT PORT01 . AL MOV AL,*-*B ;写ICW4特殊全嵌套、非缓冲、正常EOI OUT PORT01 , AL MOV AL,OFFH ;用OCW1屏蔽所有中断请求 OUT PORT01 , AL ;初始化8259A从片1 MOV AL,11 H ;写ICW1,边沿触发、

5、多片级联、写ICW4 OUT PORT11,AL MOV AL.,01.H ;写ICW2,从片1中断向量号为80H-87H OUT PORT11,AL MOV AL,02H ;写ICW3.对应主片IRi的编码为010 OUT PORT11. ,AL MOV AL,01H ;写ICW4,一般全嵌套、非缓冲、正常EOI OUT PORT11 ,AL MOV AL,0FFH ;用OCW1屏蔽所有中断请求 OUT PORT11 . AL ;初始化8259A从片2 MUV AL,11H ;写ICW 1。边沿触发、多片级联、写ICW4 OUT PORT20,AL MOV AL.90H ;写ICW2。从片2

6、中断向量号为90H 97H OUT PORT21.AL MOV AL,04H DUT PORT21, AL MOV A.L,01 H OUT PORT21, AL MOV AL.0FFH OUT PORT21, AL ;填写T5H,85H和95H号中断向址 SUB DI、DI ;ES指向中断向量表段基址 MOV ES, DI CLD MOV DI,75H*4 ;75H号中断向量地址 MOV AX,1230H ;中断处理程序偏移地址 STOSW MOV Ax,4310H ;中断处理程序段基址 STOSW MOV DI.,85H*4 ;初始化85H号中断向量 MOV AX.2340H STOWS

7、MOV Ax .4310H STOSW MOV DI,95H *4 ;初始化95H号中断向量 MOV AX,3450H STOW S MOV Ax.4310H MOV AL.00H ;用OCW1开放主片所有中断请求 OUT PORT01 H . AL OUT PORT 11 H , AL ;用OCW1开放从片所有中断请求 OUT *,AL 7.13某8085/8088系统中,若8259A处于单片、全嵌套工作方式.且采用非特殊屏蔽和非特殊结束方式,中断请求信号是边沿触发。IR0的中断类型码为58H。试对8259A初始化编程。此题无需写ICW3。其他控制字及位取值如下: (1)ICW1=xxx10

8、x11,即:中断请求为边沿触发、单片8259A ,写ICW4 (2) ICW2=01011 x x x ,即:此片8259A中断类型码高5位为01011 ( 3 ) ICW4 = 00000 x O1,即:一般嵌套、非缓冲、正常EOI,8086/8088模式。假定控制字中的x固定为0,初始化程序如下: MOV DX, x x x x x x x 0B ;指向端口0 MOV AL,13H ;中断请求为边沿触发、单片8259A、写ICW4 OUT DX,AL ;写ICW 1 INC DX ;指向端口1 MOV AL,58H ;写ICW2 MOV AL,O1H ;一般嵌套、非缓冲、正常EOI,808

9、6模式 OUT DX , AL ; 7.14分别列出下列情况下应向8259A提供的操作命令字: (1)读中断请求寄存器IRR; (2)读中断屏蔽寄存器IMR; (3)读中断服务寄存器ISR; (4)向8259A发中断结束命令EOIo。(1)应先对0端口写OCW3(读IRR命令字),再通过读0端口获得IRR值,读IRR命令字为*-*B,指令序列为: MOV AL, *-*B ;读IRR命令字 OUT x x x x x x x 0B,AL ;写OCW3(读IRR命令字) IN AL, x x x x x x x 0B ;读IRR (2)无需发操作命令字,直接对1端口读操作: IN AL, x x

10、 x x x x x 1B ;读IMR (3)应先对0端口写OCW3(读ISR命令字),再通过读。端口获得ISR值,读ISR命令字为*-*B,指令序列为:读ISR命令字 OUT x x x x x x x0B,AL ;写OCW3(读ISR命令字) IN AL, x x x x x x x 0B ;读ISR (4)有四种中断结束命令EOI,由写OCW:设置。 非特殊EOI命令:*-*B; 特殊EOI命令:01100L2L1L0B; 自动循环EOI命令: 特殊循环EOI命令: *L2L1L0B 7.16若一PC/AT应用系统中有5个故障源A,B,C,D,E,当任一个源变为低电平时,则有 故障要处理

11、。它们的优先权顺序是从A到E依次降低,处理程序的人口地址分别为8000H, S100H,8200H,8300H和8400H。现只有IRQ2可用,试按查询式中断识别与判优方案设计该中断系统,包括硬件设计和软件编程。按查询式中断识别与判优方案设计的中断系统如图7.4所示。 5个故障源A, B,C,D,E通过与非门与IRQ2相连。即任一个源变为低电平时通过IRQ2向 CPU发中断请求,在中断服务程序中通过读取三态缓冲器来识别故障源,并通过读端口控制信号复位中断谓求.程序如下: DATA * BASE DW 8000H ,0000H ;故障源A处理程序的人口地址CS: IP DW 8100H,0000

12、H ;故障源B处理程序的入口地址CS:IP DW 8200H,0000H ;故障源C处理程序的人口地址CS:I P DW 8300H,0000H: ;故障源D处理程序的人A地址CS:IP DW 8400H . 0000H ; 故障源E处理程序的人口地址CS:I P DATA ENDS CODE * ASSUME CS:CODE,DS: DATA START : MOV Ax , DATA MOV DS. Ax CLI ;关中断 MOV DI,0AH *.4 ;取IRQ2的中断向量地址 CLD XOR Ax,Ax MOV ES, Ax ;ES指向中断向量表段基址 MOV Ax ,OFFSET I

13、NT_ROUT ;填写中断向量的偏移地址 STOSW MOV Ax,SEG INT_ROUT ;填写中断向量的段基址 STOSW STI ;开中断 ;其他处理 MOV AH,4CH ;中断服务程序 INT 21 H INT_ROUT PROC: PUSH Ax ;保护现场 PUSH Bx开中断 LEA Bx.BASE ;指向故障源A中断处理程序地址 IN AL,20H ;读状态寄存器 NOT AL ;取反.将低电平变为高电平 AND AL,0F8H WAITl: TEST AL,OFFH ;有末处理中断? JZ RETURN ;无中断返回 SHL AL. , 1 ;有故障 JNC NEXT ;

14、无,跳过 CALL. DWORD PRTBX ;转相应故障源中断处理 NEXT: ADD Bx,4 ;指向下一故降源中断处理程序地址 JMP WAIT1 RETURN:关中断 POP BX :恢复现场 POP Ax开中断 I RET INT_ROUT ENDP CODE ENDS END START 7.17试编写一个基于查询式中断识别与判优方案的中断程序,该程序控制8台设备,假定状态寄存器地址为044DH,其最低位优先级最高,最高位优先级最低:某位置表示相应的设备有服务请求。同时假定已定义一个地址数组ADDR _ TAB,数组中的第i个元素提供第i台设备的中断处理程序人口地址的偏移量基于查询

15、式中断识别与判优的中断程序如下: INT_ PROC PRDC PUSH AX ;保护现场 PUSH Bx MOV BX,0 ;指向第0台设备中断处理程序地址 IN AL,40H ;状态寄存器 WAIT $ : TEST AL.0FFH ;有未处理中断? SHL AL ,1 ;第i台设备有中断? JNC NEXT ; CALL ADDR_TAB.BX ;转第i台设备中断处理 NEXT: ADD BX,2 ;指向下一台设备中断处理程序地址 JMP WAIT$ RETURN :关中断 POP BX ;恢复现场 POP AX IRET INT_PROC ENDP 7. 18假设起始地址的标号为I N

16、T_ RDUT的9型中断例程与主程序处于相同的源模块 中.试为主程序编写装填中断向量表的程序段。装填中断向量表可用DOS的25H号功能调用,亦可用MOV指令或串操作指令直接对中断向量表进行写操实现。用DOS的25H号功能调用。程序段如下: PUSH DS MOV DX . OFFSET INT_ROUT ;取中断向量的偏移地址送DX MOV AX . SEG INT_ROUT ;取中断向盘的段基址送DS MOV DS , AX MOV AH,25H ;取DOS的功能调用号送AH MOV AL, 09H ;取中断类型码送AL INT 2IH ;调25H号功能调用填写中断向量 POP DS 用串操

17、作指令填写.程序段如下: PUSH ES MOV DI.09H * 4 :取9型中断的中断向量地址 CLD MOV ES,Ax ;ES指向中断向量表段基址0000H MOV AX, OFFSET INT_ROUT ;填写中断向里的偏移地址 STOSW MTV Ax , SEG INT_ROUT ;填写中断向量的段基址 STOSW ST I ;开中断 POP ES 7.19假设某*系统工作在实地址方式。已知(SP)=0100H,(5) = 0300H, (FLAGS) = 0240H,00020DH至00023H单元的内容分别是40H .00H .00H .01 H。同时还已知INT8的偏移量0

18、0A0H在段基址为0900 H的CS段内。试指出在执行IN几指令并进人该指令相应的中断服务程序时.SP,SS,IP,CS,FLAGS和堆栈最顶端三个字的内容。由题意可知:INT8指令的地址为0900H:00A0H; IN几中断服务程序的人口地址为 0100H:0040 H 。 CPU执行INT 8指令时。先保存FLAGS , CS:IP值至堆栈,并清除FLAGS中的1F和TF位,进而改变CS: IP值转入中断服务程序。由此可得CPU在执行INT8指令并进人该指 令相应的中断服务程序时各寄存器和存储器单元值如下: (SP)=(SP)-6=0100H-6=00FAH, (SS)=0300H; (C

19、S:IP)为中断服务程序人口地址:(IP)=0040H. (CS) = 0100H; FLAGS中IF=TF=0,即FLAGS9 = FLAGS8 = 0。所以: (FLAGS)=0040H: 堆栈最顶端三个字的内容为:(00FEH)=0240H ; FLAGS值 (00FCH) = 0900H ;断点CS值 (00FA00H)=00A0H :断点IP值 7.20讨论在80X86系统的调试应用中.INT3指令和单步自陷所产生的中断差别,指出其应用场合。INT3指令产生的是断点中断,即程序运行遇到断点(INT3指令)时才暂停.转去执行断点处理程序,主要用于在程序连续运行方式下设置断点调试程序;而

20、单步自陷则使程序进人单步运行方式。即每执行一条指令,程序运行都会暂停,转去执行单步处理程序,用于单步运行调试程序。 7.21若80X86系统正以单步方式运行某用户程序(该程序己开放外部中断,即IF=1)的过程中执行一条除法指令时,1NTR线上出现了可屏蔽中断请求,与此同时.这条除法指令也产生了除法出错中断。试以流程图表示CPU处理这三种同时出现的中断的过程。中断过程如图7.5所示。CPU先响应除法出错中断.再响应INTR中断,处理完毕返回单步运行的用户程序。 7.22试编写出只有一片8259A的8088系统中8259A的初始化程序. 8259A的地址为02C0H和02C1 H,要求: (1)中

21、断请求物人采用电平触发; (2)IR0请求的中断类型码为16 (3)采用缓冲方式; (4)采用普通的EOI命令。初始化程序如下: MOV DX,02C0H ;端口0中断请求为电平触发、单片8259A、写ICW4 OUT DX,AL ;写ICW1 INC DX ;中断类型码高5位为:00010 OUT DX,AL ; MOV AL.,*-*B ;一般嵌套、级冲、正常EOI ,8086模式 OUT DX,AL ;写ICW4 7.23 IR?6试编写一段使 I7R?08259A 2的优先级顺序从高到低依次为 3I?R1?IR?IR的程序。假定CPU?IRI为R8288,8259A的4偶地址为20 H

22、.奇地址为21H,且当前优先级为;(1)IR0;(2)IR3。用特殊循环优先级设置命令指定最低优先级,设置方法与当前优先级无关。所以(1)和(2)均用下述指令完成: MOV AL,*-*B : IR5为最低优先级 OUT 20H,AL ;写特殊循环优先级设置命令 7.24试编写一段将8259A中的IRR, ISR和IMR的内容传送至存储器中从REG_ ARR 开始的数组中去的程序,假定CPU为80X86, 8259A的偶地址为50 H,奇地址为51H。程序如下: MOV Dx,50H ;指向端口0 MOV AL.AL,*-*B : OUT Dx.AL ;写OCW3(读IRR命令字) IN AL.Dx ;读IRR MOV REG_ARR,AL MOV AL , *-* B ; OUT Dx . AL ;写OCW3(读ISR命令字) IN AL,DX :读ISR MOV REG_ARR,AL. INC: DX ;指向端口1 IN AL.Dx ;读IMR MOV REG_ARR,AL

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1