- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章程序控制指令中断
(用间接存储器寻址的CALL指令) SUB AL,31H ;传送 1, 2, 3 的ASCII码到 0,1,2 JB TOP ;如果小于0, 跳到TOP CMP AL,2 JA TOP ;如果大于2, 跳到TOP MOV AH, 0 ;生成列表地址 MOV BX, AX ADD BX, BX ;把 0,1,2 传送到BX中的 0,2,4 CALL TABLE[BX] ;调用子程序one,two,three .EXIT END 5.3 中断服务 中断 中断向量表 INT 指令与执行 IRET 指令与执行 (中断服务) 什么是中断? 中断选项 提供暂停程序的执行的功能,让系统可以执行特殊的操作. . . INT n . . . . . . . . IRET 主程序 中断程序 (中断服务) 什么是中断源? 中断是被事件触发的。 程序错误: 例如 溢出, … 程序要求: INT 指令运行的结果, 单步模式… 外部中断的要求: 硬盘I/O, … 硬件问题(NMI, 非掩盖中断): 断电, 内存 和I/O奇偶校验出错, … 中断向量表 中断向量表 是 中断处理程序的入口地址表。 ( 中断向量表) 当计算机接通电源的时候, BIOS 与DOS 在常规内存中的0000H-03FFH (1024 字节)位置 建立中断向量表。 ( 中断向量表) 中断向量表提供0 ~ 255 (00H ~ FFH) 的中断( INT n , n 是中断类型码) , 每一个中断类型码都有相关的4字节的段 : 偏移 地址, CS : IP的形式 。 (中断向量表) 0FF 类型(INT 0FFH) 中断处理 程序 出入口地址 …….. 2 类型 (INT 2) 中断 处理 程序 出入口地址 1 类型(INT 1) 中断处理 程序 出入口地址 0 类型(INT 0) 中断处理 程序 出入口地址 003FFH 003FCH … 0000CH 00008H 00004H 00000H (03-04H) (CS) (00-01H) (IP) INT 指令与执行 INT 指令 任何类型中断都是通过中断指令INT n H ,调用中断服务程序来处理中断事件。 中断程序的处理 :访问低位内存中的中断向量表来得出中断程序的地址。 操作数=中断程序的地址, 被传送到DOS 或者BIOS ,处理中断事件。 中断操作处理完了之后,会返回原来程序。中断调用类似于远CALL指令,因为它把返回地址(IP和CS)存放在堆栈中 (INT 指令 与执行) 执行软中断指令,要进行如下操作: 将标志寄存器的内容入栈。 清除I 和T 标志位。 CS 寄存器内容压入堆栈。 IP(下条 指令的地址)内容入栈。 以N*4计算向量的首地址。 从向量表中,取出2字节的新的CS值、 2字节的新的IP值(新的偏移量) ,存入IP寄存器和CS寄存器中。 CS:IP中的地址指向中断子程序的起始位置,执行中断子程序。 中断指令执行时,清除中断标志(I=0),微处理器禁止中断; 当I=1时,微处理器允许中断。 INT指令的执行类似于远CALL指令,只是需要把标志压入堆栈,当然还有CS和IP。INT指令执行PUSHF操作紧跟着完成远CALL指令。 IRET 指令 与执行 中断返回指令 只用在中断处理程序中 IRET 功能 = Far RET + POPF IRET
文档评论(0)