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

14_保护模式与其编程课件.ppt

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

第十四章 保护模式及其编程;14.1保护模式下的的存贮管理 ;分段机制实现了虚拟地址到线性地址的转换 程序员在编写程序时,会定义数据段、代码段等多个逻辑段,分段管理机制就是用于管理这些段,并将二维的虚拟地址转化成一维的线性地址。 段由 段描述符 来定义,其中存放了关于段的三个参数:(1)段基址 (Base, 32位) (2)段界限(Limit, 20位) (3)段的属性(读/写/执行,特权级等)(12位) 段描述符存放在描述符表中,选择子就是用来指定某个特定描述符的关于描述符表的索引;段选择子与存储段描述符;描述符表;GDT和LDT;GDT和LDT;GDTR、LDTR;虚拟-线性地址转换过程;例:MOV EAX, DS : [EDX] 设描述符表的基地址存放在GDTR中,则转换结果为: [(GDTR+DS×8)].Base + EDX 注:[A]表示取A所指向的内存单元的内容;分页机制在分段机制之后进行操作,以完成线性地址到物理地址的转换过程。 保护模式下,CR0中的PG位控制分页管理机制是否生效。 分页机制把线性地址空间和物理地址空间分别划分为大小相同的块。这样的块称之为页。通过在线性地址空间的页与物理地址空间的页之间建立的映射,分页机制实现线性地址到物理地址的转换。 在80386中,页的大小固定为4K字节,每一页的边界地址必须是4K的倍数。因此,4G大小的地址空间被划分为1M个页,每个页的起始地址用20位记录。 线性地址的低12位经过分页机制直接作为物理地址的低12位使用。页映射函数可看成是把线性地址的高20位转换为对应物理地址高20位的转换函数。;两级页表结构;两级页表结构;表项格式;线性地址到物理地址的转换;14.1.2 虚拟存贮器;14.1.3 保护机制;14.2 保护模式下的程序调用和转移 ;段界限(位7~0);偏移地址(位7~0); 门描述符并不描述某种内存段,而是描述控制转移的入口点。通过这种门,可实现任务内特权级的变换和任务间的切换。 门描述符又可分为:任务门、调用门、中断门和陷阱门。 调用门 描述某个子程序的入口,通过调用门可实现任务内从低特权级变换到高特权级。 任务门指示任务 通过任务门可实现任务间切换。 中断门和陷阱门 描述中断/异常处理程序的入口点。 ; 任务状态段 ;14.2.2 任务内的段间转移 ; 任务内无特权级变换的转移 (1)处理器在执行段间直接转移指令时,首先通过段选择子从全局描述符表或局部描述符表中取得目标代码段描述符,装载到CS高速缓冲寄存器; (2)然后将段选择子装入CS段寄存器,偏移地址装入指令指针寄存器EIP,CPL存入CS内选择子的RPL字段; (3)如果是执行CALL指令,还需将返回地址指针压栈,从而完成向目标代码段的转移。 ;2.任务内特权级变换的转移 ;CALL 选择子:偏移地址;14.2.3 任务间的转移 ;80386把外部中断称为“中断”,把内部中断称为“异常”。中断又可分为可屏蔽中断和不可屏蔽中断, 异常又分为故障、陷阱和中止。 向量是通过中断门或者陷阱门给出的,中断门或者陷阱门位于中断描述符表IDT中,中断描述表地址是由IDTR(中断描述表寄存器)给出。; 中断描述表IDT ;14.4 保护模式下的的输入/输出保护 ;14.5 操作系统类指令 ;14.5.2 实模式和在特权级0下可执行的指令 (1)装载全局描述符表寄存器指令 格式:LGDT QWORD PTR 源操作数 说明:源操作数是48位(6字节)的内存操作数。 功能:把源操作数装入到全局描述符表寄存器GDTR中。 (2)装载中断描述符表寄存器指令 格式:LIDT QWORD PTR源操作数 ??明:源操作数48位(6字节)的内存操作数。 功能:把存储器中的源操作数装入到中断描述符表寄存器IDTR中。;(3)控制寄存器数据传送指令 格式:MOV 目标操作数,源操作数 说明:控制寄存器数据传送指令实现CPU的控制寄存器和32位通用寄存器之间的数据传送。 (4)清任务切换标志指令 格式:CLTS 说明:每当任务切换时,控制寄存器CR0的任务切换标志TS被自动置1。CLTS指令的功能是将TS标志清0。 ;14.5.3 只能在保护模式下执行的指令 ;(3)装载任务寄存器指令 格式:LTR 源操作数 说明:源操作数可以是16位通用寄存器或内存操作数。 功能:将源操作数作为指向TSS描述符的选择子装载到任务寄存器TR。 (4)存储任务寄存器指令 格式:STR 源操作数 说明:源操作数可以是16位通用寄存器或内存操作数。 功能:把TR所含的指向当前任务TSS描述符的选择子存储到源操作数。

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档