第09 中断.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第09 中断

二、不可屏蔽中断 所谓不可屏蔽中断就是用户不能通过CPU内的中断允许触发器IF控制的中断,由8086CPU的NMI管脚引入。NMI中断请求采用上升沿触发方式,这种中断一旦产生,在CPU内部直接生成中断类型号02。 三、 可屏蔽中断 可屏蔽中断就是用户可以控制的中断,其途径是通过对CPU内的中断允许触发器IF的设置来禁止和允许CPU响应中断。可屏蔽中断由8086CPU的INTR管脚引入。这种中断请求需要设备提供中断类型号,CPU响应中断后,取中断类型号的4倍作为中断服务入口地址表的地址,通过查表得到相应的中断服务程序首地址,转去执行相应的中断服务程序。 四、8086中断系统 1、软件中断 软件中断是由中断指令引起的。中断指令的指令格式为 INT n,操作数n就是中断类型号。当CPU执行完毕中断指令INT n后,就会立即产生一个中断类型号为n的中断。 (1)除法中断 当进行除法运算时,若除数为0或除数太小,使得商数大于相应寄存器所能表示的最大值,被称作除法出错。这时除法指令就相当于一个中断源,它向CPU发出类型0中断。 (2) 溢出中断 当算术运算产生溢出时,将在INTO指令控制下向CPU发出类型4的中断,即溢出中断。 (3)单步中断和断点中断 单步中断 当8086CPU的标志寄存器中的TF标志为1时,8086CPU处于单步工作方式,这时CPU在每条指令执行后自动产生类型l的中断。 断点中断 INT3指令是1字节指令,可将这条指令的目的代码嵌入任意条指令的操作码处,从而实现断点中断。 五、中断概念的再讨论 1、中断与调子程序之间的关系 (1)中断过程实际上是CPU从执行当前主程序转到执行为外设服务的子程序,因此从这个角度来看,中断过程是一个调用子程序的过程。 (2)中断过程与子程序调用还是有很大差别的,首先调用子程序的过程是一个无条件过程,但中断过程的中断服务程序的调用一般是有条件的。其次,子程序调用在整个程序执行中的位置是固定的。但对于硬件中断过程,只要条件满足,在整个程序执行的任意一时间点都有可能发生从主程序向中断服务子程序的转移事件,也就是说硬件中断产生的调用过程是随机的,不可预测的。 2、外部中断和 INT n 之间的关系 结合中断指令INT n,我们可以这样理解外部中断:当外部中断源发中断给CPU时,如果CPU满足一定的条件,处于开中断状态,CPU就可以响应中断,这时外设在CPU正在执行指令与其下一个指令之间,等效“插入”了一个INT n指令,这里的n就是外设提供的中断类型号。注意这里用“等效”两字表示实际过程中是不存在插入INT n指令的操作,但CPU确实完成了类似INT n指令的功能,实现了主程序向中断程序的转移。 9.5 8086CPU的中断管理 一、8086CPU的中断处理顺序 8086CPU的中断优先权排列从高到低为: 1、除法出错中断,溢出中断,INT n; 2、NMl; 3、INTR; 4、单步中断。 二、8086CPU的中断服务入口地址表 三、 中断入口地址设置 1、用串指令 CLI ;关中断 MOV AX,0 MOV ES,AX ;置附件段基地址为0 MOV DI, n*4 ;置附件段偏移地址到DI MOV AX,OFFSET INT_VCE ;置中断程序首地址的偏移量到AX CLD STOSW ;填偏移量到中断地址表 MOV AX, SEG INT_VCE ;置中断程序的段基地址到AX STOSW ;填段基地址到中断地址表 STI ;开中断 …… 2、用伪指令 INT-TBL SEGMENT AT 0 ;定义INT-TBL段,段基地址为0 ORG n*4 ;指定偏移地址 DD INT—VCE ;存中断程序入口地址 INT-TBL ENDS …… ;其他处理 MCODE SEGMENT ;主程序 …… ;其他处理 INT—VCE PROC FAR ;中断服务程序 …… IRET INT—VCE ENDP …… 3、用系统调用 使用DOS功能调用的25H功能 要求: AL=中断类型号 DS:DX=中断服务程序首地址的段、偏移地址 PUSH DS MOV DX,SEG INT60H ;段基地址送DS MOV DS,DX MOV DX,OFFSET INT60H ;偏移地址送DX MOV AL,60H ;中断类型号送AL MOV AH,25H

文档评论(0)

peili2018 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档