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

微型计算机原理与接口技术_第13章.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
任务内特权级变换的转移 段间间接转移: 指令JMP和CALL在指令中含有指向包含目标地址指针的门描述符或TSS描述符的指针。 例 JMP XX:YY、CALL XX:YY 其中XX不再是16位代码段选择子,而是一个门选择子;偏移地址YY没有使用。 在同一任务内,实现特权级从低到高变换的方法是利用CALL指令,通过调用门进行转移。 实现特权级从高到低变换的方法是利用RET指令。 JMP指令只能实现无特权级变换的转移,不能实现任务内不同特权级的变换。 CALL 选择子:偏移地址 调用门 选择子:偏移地址 目标代码段描述符 段基址 子程序 …… RET 目标代码段 GDT/LDT 使用调用门的转移过程 任务间的转移 利用段间转移指令JMP或者段间调用指令CALL,通过任务门或直接通过任务状态段,可以进行任务间的转移,即任务切换。 在中断/异常或者执行IRET指令时也可能发生任务切换。 因为RET指令的目标地址只能使用代码段描述符,所以,不能通过RET指令实现任务切换。 80386把外部中断称为“中断”,把内部中断称为“异常”。中断又可分为可屏蔽中断和不可屏蔽中断, 异常又分为故障、陷阱和中止。 向量是通过中断门或者陷阱门给出的,中断门或者陷阱门位于中断描述符表IDT中,中断描述表地址是由IDTR(中断描述表寄存器)给出。 13.3 保护模式下的的中断与异常 中断描述表IDT 整个系统只有一个中断描述符表IDT,最大长度是2K。 中断描述符表寄存器IDTR指示IDT在内存中的位置,IDTR是48位的寄存器,其中高32位为基址,低16位为界限。 中断描述符表IDT所含的描述符只能是中断门、陷阱门和任务门。 在保护模式下,CPU只有通过中断门、陷阱门或任务门才能转移到对应的中断或异常处理程序。 门描述符是8个字节长,因此中断或异常产生时,CPU以中断号乘8从IDT中取得对应的门描述符,分解出选择子、偏移量和描述符属性类型,并进行有关检查。最后,根据门描述符类型是中断门、陷阱门还是任务门,分情况转入中断或异常处理程序。 13.4 保护模式下的的输入/输出保护 80386采用I/O特权级IPOL和I/O许可位图的方法来控制输入/输出,实现输入/输出保护。 IOPL存放在标志寄存器EFLAG中,它规定了可以执行所有与I/O相关的指令和访问I/O空间中所有地址的最低特权级。只有当CPL =IOPL时,才被允许随意访问I/O空间中的任何地址。 每个任务都有一个I/O许可位图,它由二进制位串组成。位串中的每一位依次对应一个I/O地址。 I/O许可位图存放在每个任务所对应的任务状态段(TSS)中。 当CPL IOPL时,如果该指令所访问的I/O地址所对应的当前任务的I/O许可位为0,则80386允许该I/O操作,如果I/O许可位为1,则禁止该I/O操作。 IOPL的设置和I/O许可位图的创建只能由操作系统进行。 13.5 操作系统类指令 实模式和任何特权级下可执行的指令 (1)存储全局描述符表寄存器指令 格式:SGDT QWORD PTR 目标操作数 说明:目标操作数是48位(6字节)的存储器操作数。 功能: 把全局描述符表寄存器GDTR的内容存储到目标操作数。 (2)存储中断描述符表寄存器指令 格式:SIDT QWORD PTR目标操作数 说明:目标操作数是48位(6字节)的存储器操作数。 功能: 把中断描述符表寄存器IDTR的内容存储到目标操作数。。 (1)装载全局描述符表寄存器指令 格式:LGDT QWORD PTR 源操作数 说明:源操作数是48位(6字节)的内存操作数。 功能:把源操作数装入到全局描述符表寄存器GDTR中。 (2)装载中断描述符表寄存器指令 格式:LIDT QWORD PTR源操作数 说明:源操作数48位(6字节)的内存操作数。 功能:把存储器中的源操作数装入到中断描述符表寄存器IDTR中。 实模式和在特权级0下可执行的指令 (3)控制寄存器数据传送指令 格式:MOV 目标操作数,源操作数 说明:控制寄存器数据传送指令实现CPU的控制寄存器和32位通用寄存器之间的数据传送。 (4)清任务切换标志指令 格式:CLTS 说明:每当任务切换时,控制寄存器CR0的任务切换标志TS被自动置1。CLTS指令的功能是将TS标志清0。 只能在保护模式下执行的指令 (1)装载局部描述符表寄存器指令 格式:LLDT 源操作数 说明:源操作数可以是16位通用寄存器或内存操作数。 功能:把源操作数中的内容作为指示局部描述符表LDT的选择子装入到LDTR寄存器。 (2)存储局部描述符表寄存器指令 格式:SLDT 源操作数 说明:源操作数可以是1

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档