第八-1章 中断程序设计.pptVIP

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

第八-1章 中断程序设计 中断处理程序设计 利用软中断指令INT,可以进入系统的各个中断处理程序中去。因此,用户程序可以通过INT指令使用系统程序提供的中断功能,同时可以利用中断向量表中保留的中断类型号,编写自己需要的中断处理程序,对此本节将做详细介绍。 1.中断处理程序结构 CPU响应中断后,自动根据中断类型取中断向量,并转入中断处理程序。具体的工作由中断处理程序完成,外中断和软中断程序设计不尽相同。 1. 外中断处理程序 外设中断是随机发生的,在中断处理程序设计时必须考虑这一点。 2. 外中断处理程序的主要步骤如下: (1) 保护现场。保护通用寄存器内容和除CS之外段寄 存器的内容,保护方法一般是压栈。 (2) 尽快完成中断处理,以免影响其他外设中断请求。 (3) 恢复现场。 (4) 中断返回。用IRET指令返回。 3. 软中断处理程序 由中断指令引起的软件中断事件是不会随机发生的,只有CPU执行中断指令后,才会发生。因此,中断指令类似于子程序调用指令,相应的软中断处理程序在很大程度上类似于子程序,但并不等同于子程序。 (1) 切换堆栈。因为软中断处理程序往往在开中断状态下执行,并且可能较复杂(要占用大量的堆栈空间),所以应该考虑切换堆栈。切换堆栈对实现中断嵌套等均较为有利。 (2) 及时开中断。开中断后,CPU就可响应可屏蔽的外设请求,或者说使外设中断请求及时得到处理。但要注意,如果该软件中断处理程序要被外设中断处理程序“调用”,则应另外考虑是否要开中断或者何时开中断。 (3) 应该保护现场。应该保护中断处理程序中要重新赋值的寄存器的原有内容,这样在使用软中断时,可不必考虑有关寄存器内容的保护问题。 (4) 完成中断处理。但不必过分追求速度上的高效率,除非它是被外设中断处理程序“调用”的。 (5) 恢复现场。依次恢复被保护寄存器的原有内容。 (6) 堆栈切换。如果在开始时切换了堆栈,那么也要再重新切换回原堆栈。 (7) 一般利用IRET指令实现中断返回。 4. 设置中断向量 在系统程序或应用程序中由于某种需要而提供新的中断处理程序时,就要设置对应的中断向量,使其指向新的中断处理程序。 设置中断向量一般有两种方法: 直接写入法 使用DOS调用法 直接写入法用MOV指令将中断向量直接写入中断向量表,下面是一个直接写入法的例子。 【例】 使用直接写入法设置中断向量。 MOV AX,0 MOV DS,AX MOV BX,N*4 ;设置N号中断向量 CLI ;关中断 MOV WORD PTR[BX],OFFSET INTHAND ;置偏移 MOV WORD PTR[BX+2],SEG INTHAND ;置段值 STI ;开中断 在上面的程序片段中,使用了关中断指令CLI,目的是保证真正用于设置中断向量的两条传送指令能够连续执行。在执行完前一条指令后,n号中断向量暂时被破坏,既不指向原中断处理程序,也不指向新的中断处理程序。如果此时发生类型为n的中断,那么就不能正确的转到中断处理程序执行,这是不希望发生的事。如果能够确定当前是关中断的状态,当然就不再需要使用该关中断指令,也不需要随后的开中断指令。若能肯定在设置n号中断向量的过程中不发生类型为n的中断,那么可不考虑是否为关中断状态,这种情况只有在对应的中断处理程序仅供应用程序自己使用时才有可能发生。 DOS功能调用法 实际上是利用一个内部中断来设置中断向量。入出口参数如下: 预置: AH=25H AL=中断类型号 DS:DX=中断向量 执行: INT 21H 功能:将ds:dx指定的中断向量写入中断向量表。 【例】 使

文档评论(0)

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

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

1亿VIP精品文档

相关文档