1、微机原理与接口技术第六章作业一、P207:1,3,5,10,1418,19,201、什么叫中断?中断系统得主要功能有哪些?中断:就是指CPU在执行程序得过程中,由于某种外部或内部事件得作用,强迫CPU停止当前正在执行得程序,转去为该事件服务,待事件服务结束后,能自动地返回到被中断得程序中继续执行。中断系统得功能: 1、设置中断源 2、中断源识别 3、中断源判优 4、中断与返回3、CPU 响应中断时得处理过程就是什么?在各个处理环节主要完成哪些操作?过程就是:中断请求、中断响应、中断处理与中断返回。(1)中断请求:中断源需要进行中断服务时,由硬件产生一个中断信号INTR 发给CPU 且保持到CP
2、U 响应。(2)中断响应:CPU 在当前指令执行结束后采样查询INTR ,若中断请求信号有效且允许响应INTR 中断(IF=1),则向请求设备送回低电平有效得中断响应信号INTR , 自此系统自动进入中断响应周期,并由硬件自动完成内容入栈,清除TF 与IF标志、断点入栈,取中断服务程序得入口地址等一系列操作,继而转去执行中断服务程序。(3)中断处理:执行中断得主体部分。不同得中断请求源,其中断处理得内容就是不同得。需要根据中断请求源所要完成得功能,编写相应得中断服务程序存入内存。等待中断响应后调用执行。(4)中断返回:又中断服务程序中得中断返回指令IRET 完成。执行该指令时,将压入对战得断点
3、与标志位弹出,使CPU 转向被中断得现行程序中继续执行。5、中断允许标志IF得作用就是什么? 可以用什么指令对它置1或清0。IF用来控制INTR与单步中断。IF=1允许中断 IF=0不允许中断 STI:IF=1 CLI:IF=010、中断向量表用来存放什么内容?它占用多大得存储空间?存放在内存得哪个区域?可以用什么方法写入或者读取中断向量表得内容?中断向量表存放中断向量,即中断服务程序得段基址+偏移地址。中断向量表占1KB 内存RAM区,地址范围:000H3FFH。写入方法: 1、用传送指令直接装入 2、DOS功能调用:INT 21H (AH)=25H (AL)=中断类型号 (DS:DX)=中
4、断服务程序得入口地址 读出方法: 1、用传送指令直接读 2、DOS功能调用:INT 21H (AH)=35H (AL)=中断类型号 出口参数:(ES:BX)=中断服务程序得入口地址14、8259A 有哪几种中断结束方式? 它们适合应用在什么场合? 1、自动结束方式自动结束方式就是利用中断响应信号INTA得第二个负脉冲得后沿将ISR中得中断服务标志位清除,就是在中断过程中完成得,并非中断服务程序得真正结束。只适合适用在无多级中断嵌套得场合。 2、普通结束方式 通过向8259A传送一个普通EOI命令来清除ISR中当前优先权级别最高位,适合使用在完全嵌套方式下得中断结束。 3、特殊结束方式通过向82
5、59A传送一个普通EOI命令来清除ISR中得指定位。适合使用在完全嵌套方式下得中断结束,更适合用于嵌套结构有可能遭到破坏得中断结束。18、某系统使用一片8259A管理中断,中断请求由IR2 引人,采用电平触发、完全嵌套、普通EOI结束方式,中断类型号为42H 端口地址为80H 与81H,试画出8259A 与CPU得硬件连接图,井编写初始化程序。初始化程序: MOV AL,00011011B ;电平触发、单片、写ICW4 OUT 80H,AL ;写ICW1 MOV AL,01000000B ;中断类型号40H,则IR2 为42H OUT 81H,AL ;写ICW2 MOV AL,00000001
6、B ;完全嵌套、非自动结束、8086模式 OUT 81H,AL ;写ICW419、某系统使用两片8259A 管理中断,从片得INT 连接到主片得IR2请求输入端。设主片工作于边沿触发、特殊完全嵌套、非自动结束与非缓冲方式,中断类型号为70H ,端口地址为80H 与81H ;从片工作与边沿触发、完全嵌套、非自动结束与非缓冲方式,中断类型号为40H ,端口地址为20H 与21H 。要求:(1)画出主、从片级联图(2)编写主、从片初始化程序主片初始化程序:MOV AL,00010001B ;边沿触发、主片、写ICW4 OUT 80H,AL ;写ICW1 MOV AL,01110000B ;中断类型号
7、70H,则IR2 为42H OUT 81H,AL ;写ICW2MOV AL,00000100 OUT 81H,AL ;写ICW3 MOV AL,00010001B ;完全嵌套、非自动结束、8086模式OUT 81H,AL ;写ICW4从片初始化程序:MOV AL,00010001B ;边沿触发、从片、写ICW4 OUT 20H,AL ;写ICW1 MOV AL,01000000B ;中断类型号40H,则IR2 为42H OUT 21H,AL ;写ICW2 MOV AL,00000010 OUT 21H,AL ;写ICW3 MOV AL,00000001B ;完全嵌套、非自动结束、8086模式O
8、UT 21H,AL ;写ICW420、某系统由8259A 得IR2引入外设中断请求(跳变信号有效),要求当CPU 响应IR2请求时,输出显示字符串“*”,并中断10次退出,试编写主程序与中断服务程序。 程序:DATA SEGMENTMESS DB *,OAH,ODH,$INTA00 EQU 0020HINTA01 EQU 0021HDATA ENDSSTACK SEGMENT STACKDB 100H DUP (?)STACK ENDSCODE SEGMENTASSUME CS :CODE ,DS :DATA ,SS :STACKMAIN :MOV AX ,DATAMOV DS ,AXMOV
9、DX ,INTA00 ;8259A 初始化MOV AL ,13H ;写ICW1OUT DX ,ALMOV DX ,INTA01MOV AL ,08H ;写ICW2OUT DX ,ALMOV AL ,01H ;写ICW4OUT DX ,ALPUSH DSMOV AX ,SEG INTP ;设置中断矢量MOV DS ,AXMOV DX ,OFFSET INTPMOV AL ,0AHMOV AH ,25HPOP DSMOV AL ,0FBH ;写中断屏蔽字OCW1 OUT DX ,ALMOV DX ,INTA00MOV AL ,20H ;写中断结束方式OCW2 OUT DX ,ALMOV BX,10
10、WAIT1: STI ;开中断JMP WAIT1 ;等待中断INTP :MOV AX ,DATA ;中断服务程序入口MOV DS ,AXMOV DX ,OFFSET MESS ;输出指定字符串MOV AH ,09HINT 21HMOV DX ,INTA00 ;写OCW2,送中断结束命令EOI MOV AL ,20HOUT DX ,ALDEC BX ;控制10次循环JNZ NEXTMOV DX ,INTA01 ;读屏蔽寄存器IMRIN AL ,DXOR AL ,04H ;屏蔽IR2请求OUT DX ,ALSTI ;开中断MOV AX ,4C00H ;返回操作系统INT 21HNEXT : IRET ;中断返回CODE : ENDSEND MAIN