网站大量收购闲置独家精品文档,联系QQ:2885784924

第章保护模式下的程序设计简介.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章保护模式下的程序设计简介.ppt

本章主要教学内容 11.1 保护模式编程基础 本章小结 3.优先级 最低 INTR中断 ↓ NMI中断 ↓ 调试陷阱 ↓ 陷阱指令INT n和INTO ↓ 其它故障 最高 调试故障 优先级 中断/异常类型 11.4.2 异常类型 1.80386识别的异常 INT n 无 陷阱 软中断 11H~0FFH 浮点指令或WAIT 无 故障 协处理器出错 10H 任何访问存储器的指令 有 故障 页异常 0EH 任何特权指令、任何访问存储器的指令 有 故障 通用保护异常 0DH 装载SS寄存器的任何指令、对SS寻址的段访问的任何指令 有 故障 堆栈段异常 0CH 装载段寄存器的指令 有 故障 段不存在 0BH JMP、CALL、IRET或中断 有 故障 无效TSS异常 0AH 访问存储器的浮点指令 无 中止 协处理器段越界 9 任何指令 有 中止 双重故障 8 浮点指令或WAIT 无 故障 设备不可用 7 非法指令编码或操作数 无 故障 非法操作码 6 BOUNT 无 故障 边界检查 5 INTO 无 陷阱 溢出 4 INT 3 无 陷阱 单字节INT3 3 任何指令 无 故障/陷阱 调试异常 1 DIV,IDIV 无 故障 除法出错 0 相关指令 出错代码 异常类型 异常名称 向量号 2.故障类异常 (1)除法出错故障(异常0)。 (2)边界检查故障(异常5)。 (3)非法操作码故障(异常6)。 (4)设备不可用故障(异常7)。 (5)无效TSS故障(异常0AH)。 (6)段不存在故障(异常0BH)。 (7)堆栈段故障(异常0CH)。 (8)通用保护故障(异常0DH)。 (9)页故障(异常0EH)。 (10)协处理器出错(异常10H)。 3.陷阱类异常 (1)调试陷阱(异常1)。 (2)单字节INT3(异常3)。 (3)溢出(异常4)。 4.中止类异常 (1)双重故障异常(异常8)。 (2)协处理器段越界(异常9)。 11.4.3 中断和异常的转移方法 1.中断描述符表IDT 80386使用中断描述符表IDT,整个系统仅有一张IDT。中断描述符表寄存器IDTR指示IDT在内存中的位置。IDT最大长度是2K。 80386把中断向量号作为中断描述符表IDT中描述符的索引。IDT所含的描述符只能是中断门、陷阱门和任务门。 2.中断响应和异常处理的步骤 首先,判断中断向量号要索引的门描述符是否超出IDT的界限。若超出界限,就引起通用保护故障,出错码为中断向量号乘8再加2。 其次,从IDT中取得对应的门描述符,分解出选择子、偏移量和描述符属性类型,并进行有关检查。 最后,根据门描述符类型,分情况转入中断或异常处理程序。 (1)若选择子为空,则产生通用保护故障; (2)取对应的描述符; (3)若非存储段描述符,则产生通用保护故障; (4)若非一致代码段且DPLCPL且段存在,则切换到内层堆栈; (5)调整RPL=0; (6)把描述符装入CS; (7)若入口偏移越界,则产生通用保护故障; (8)EFLAGS压入堆栈; (9)CS压入堆栈; (10)EIP压入堆栈; (11)使TF=0,NT=0; (12)若为中断门,则使IF=0; (13)若有出错码,则把出错码压入堆栈; (14)转入处理程序。 3.通过中断门或陷阱门的转移 如果中断向量号所只是的门描述符是任务门描述符,那么控制转移到一个作为独立的任务方式出现的处理程序。任务门中的选择子是指向描述对应处理程序任务的TSS段的选择子,即该选择子指示一个可用的286TSS或386TSS。 4.通过任务门的转移 在当前任务之内的处理程序较为简单,并可以很快地转移到处理程序,但处理程序要负责保存及恢复处理器的寄存器等内容。转到不同任务的处理程序要花费较长时间,保存及恢复处理器寄存器内容的开销作为任务切换的一部分。 有些异常必须由中断门或陷阱门进行处理。 5.转移方法的比较 6.中断或异常处理后的返回 中断返回指令IRET用于从中断或异常处理程序的返回。该指令的执行根据任务嵌套标志NT位是否为1分为两种情形。 NT=1,表示是嵌套任务的返回。当前TSS中的链接字段保存有前一任务的TSS的选择子,取出该选择子进行任务切换就完成返回。 NT=0,表示当前任务内的返回。这种情形在由通过中断门或陷阱门转入的中断或异常处理程序返回时出现。 11.4.4 中断处理的实例 【例11-4】编写28H号中断的服务程序。 ;加载头文件386h.inc INCLUDE 386H.INC ;部分常量定义 EOICOM = 20H ;外部中断处理

文档评论(0)

czy2014 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档