欢迎来到天天文库
浏览记录
ID:40207528
大小:1.79 MB
页数:59页
时间:2019-07-25
《微机原理与接口技术-第5章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理及接口技术主编梁建武中国水利水电出版社5.1中断接口技术8088的中断系统采用向量中断机制能够处理256个中断用中断向量号0~255区别可屏蔽中断还需要借助专用中断控制器Intel8259A实现优先权管理8088的中断类型非屏蔽中断源中断逻辑INTO指令单步中断除法错误INTN指令CPUINTRNMI可屏蔽中断源8259A中断控制器IR0IR1IR2IR3IR4IR5IR6IR7外设中断源INTA内部中断除法错中断指令中断溢出中断单步中断外部中断非屏蔽中断可屏蔽中断1.外部中断外部中断是由于8088外部提出中断请求引起的程序中断利用外部中断,微机系统可以实
2、时响应外部设备的数据传送请求,能够及时处理外部意外或紧急事件外部中断的原因是处理器外部随机产生的,所以是真正的中断(Interrupt)内部中断的原因是处理器执行程序出现异常,所以经常被称为异常(Exception)⑴非屏蔽中断通过非屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应,这个中断被称为非屏蔽中断8088的非屏蔽中断的向量号为2,非屏蔽中断请求信号为NMI非屏蔽中断主要用于处理系统的意外或故障。例如:电源调电前的数据保护存储器读写错误的处理⑵可屏蔽中断外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可
3、屏蔽中断的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断8088的可屏蔽中断请求和响应信号分别是INTR和INTA*;由IF标志控制可屏蔽中断是否允许响应;向量号来自外部中断控制器8088通常需要配合中断控制器8259A共同处理可屏蔽中断可屏蔽中断主要用于主机与外设交换数据IF控制可屏蔽中断的响应中断标志IF的状态IF=0:可屏蔽中断不会被响应关中断、禁止中断、中断屏蔽系统复位,使IF=0任何一个中断被响应,使IF=0执行指令CLI,使IF=0IF=1:可屏蔽中断会被响应开中断、允许中断、中断开放执行指令STI,使IF=1执
4、行指令IRET恢复原IF状态明确IF标志的状态是关键8088的中断响应过程NMIN软件中断INTRTF=1中断响应周期读中断向量号下条指令现行指令IF=1NNNNYYYYY查询中断的顺序,决定了各种中断源的优先权软件中断除法错中断指令中断溢出中断非屏蔽中断可屏蔽中断单步中断高低8088的中断响应过程(续)Y还有NMITEMP=1标志寄存器入栈TEMP=TF,IF=TF=0CS:IP入栈获取中断向量执行服务程序弹出CS:IP弹出标志寄存器返回被中断程序(1)(2)(3)(4)(5)NNY(6)8088各种中断源的优先权,实际上是指被识别出来的先后多种中断同时请求时,
5、最先响应的则可能是单步中断或NMI中断8088的中断向量表中断向量:中断服务程序的入口地址(首地址)逻辑地址含有段地址CS和偏移地址IP(32位)每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节8088微处理器从物理地址000H开始,依次安排各个中断向量,向量号也从0开始256个中断占用1KB区域,就形成中断向量表向量号为N的中断向量的物理地址=N×4内部中断服务程序编写内部中断服务程序与编写子程序类似利用过程定义伪指令PROC/ENDP第1条指令通常为开中断指令STI最后用中断返回指令IRET通常采用寄存器传递参数主程序需要调用中断服务程序调用前,需要
6、设置中断向量利用INTn指令调用中断服务程序例内部中断服务程序编写80H号中断服务程序功能:显示以“0”结尾字符串的功能利用显示器功能调用INT10H字符串缓冲区首地址为入口参数DS:DX(段地址:偏移地址)传递参数数据段intoffdw?intsegdw?intmsgdb‘AInstructionInterrupt!’db0dh,0ah,0回车、换行以“0”结尾保存中断向量movax,3580hint21hmovintoff,bx;保存偏移地址movintseg,es;保存段基地址获取中断向量(DOS功能调用INT21H)功能号:AH=35H入口参数:AL=中断
7、向量号出口参数:ES:BX=中断向量(段地址:偏移地址)设置中断向量pushdsmovdx,offsetnew80hmovax,segnew80hmovds,axmovax,2580hint21hpopds设置中断向量(DOS功能调用INT21H)功能号:AH=25H入口参数:AL=中断向量号DS:DX=中断向量(段地址:偏移地址)调用中断服务程序;设置入口参数:DS=段地址(已设置)DX=偏移地址movdx,offsetintmsgint80h;调用80H中断服务程序AInstructionInterrupt!进入中断服务程序;80H号内部中断服务程序:;显示字
8、符串(以“
此文档下载收益归作者所有