- 1、本文档共60页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
保护模式软件体系结构9
1. 虚拟地址空间的分段 在分段模型中,64TB虚拟地址空间被分为32TB的全局存储器地址空间和32TB局部存储器地址空间 全局段0 全局段8192 局部段0 局部段8192 虚拟地址空间 64TB 局部地址空间 32TB 全局地址空间 32TB 2. 段式地址转换 虚拟地 址指针 GDT/LDT 选择符 偏移量 段描述符 数据段描述符高速缓 冲寄存器(不可见) 数据段 操作数 DS EAX 2. 段式地址转换 CS DS SS ES FS GS 程序员可见 访 问 权 限 访 问 权 限 基 址 界 限 0 19 20 51 52 63 段描述符高速缓冲寄存器(不可见) 2. 段式地址转换 例:假设虚拟地址为0100,禁止分页。如果描述符中读出的段基址,那么操作数的物理地址是什么? 解: 将此虚拟地址转换成物理地址为 基地址+偏移量 3. 分页机制 分段法:将程序分成可变长的若干段 分页法:将程序分成若干相同大小的页,每页长4KB 如果不允许分页,那么分段机构确定的32位线性地址即为物理地址;如果允许分页,就要将32位线性地址通过两级表格结构转换成物理地址,第一级是页目录,第二级是页表 3. 分页机制 页目录长4KB,包含最多1024个页目录项,每个页目录项4字节 7 6 5 4 3 2 1 0 0 0 A 0 0 U/S R/ W P 页表地址 0~3 位 OS 专用 0 页表地址 4~11 位 页表地址 12~19 位 0 1 2 3 3. 分页机制 页表的起始地址是4K的整数倍,因此32位地址的低12位总为0,用高20位表示即可 U/S R/W 特权级3 特权级0~2 0 0 无 读/写 0 1 无 读/写 1 0 只读 读/写 1 1 读/写 读/写 3. 分页机制 页表长4KB,包含最多1024个页面项,每项4字节 7 6 5 4 3 2 1 0 0 D A 0 0 U/S R/ W P 页面地址 0~3 位 OS 专用 0 页面地址 4~11 位 页面地址 12~19 位 0 1 2 3 页面的起始地址为4K的整数倍,所以32位页面地址只用高20位 D位:对所涉及页面进行写操作时,D置1 3. 分页机制 整个存储器有一个页目录,它最多有1024个页目录项,每个页目录项可含有1024个页面项 ——共有1024?1024=1M个页面,每页面4KB,存储器大小正好4GB 目录 页 偏移量 31 22 21 12 11 0 线性地址格式 3. 分页机制 线性地址 页目录 目录 偏移量 页目录项 页面 操作数 页 CR3 页表 页表项 3. 分页机制 TLB——转换后援缓冲器 TLB为一个Cache,其中保存了32个最近使用的页转换地址。若访问同样的存储区域,则不必再访问页目录和页表 ,可以加快程序的运行。 例:对于线性地~00000FFFH,将选中页目录项0和页表项0。若页表项0包含的地址,则线性地~00000FFFH对应的物理地址~00100FFFH 2.4.4 虚拟8086模式 保护模式的子模式 在保护模式下,只要将EFLAGS寄存器的VM位置1,处理器便进入V86模式。将VM位清0,处理器便又退回保护模式 当处理器处于V86模式时,段寄存器的使用与实模式相同。 通过分页操作,V86的1MB地址空间可以转换到Pentium的4GB空间的任何地方 4.6 Win32汇编语言程序设计 一、Win32汇编语言程序的结构 二、Win32 API的调用 * * 2.4 保护模式软件体系结构 4.6 Win32汇编语言程序设计 2.4.1 描述符与描述符表 2.4.2 保护模式的寄存器模型 2.4.3 保护模式下存储器寻址 2.4.4 虚拟8086模式 2.4 保护模式软件体系结构 1. 特权级(PL, Privilege Level): 2.4.1 描述符与描述符表 任务:程序在执行时的一种情况,是一个动态的概念 Pentium为每个任务提供了4种特权级,0级最高,3级最低 应用程序 常规扩展 系统服务 内核 级别0 级别1 级别2 级别3 2. 描述符(Descriptor): 描述存储器段的属性的一个8字节的数据结构。 包括段
文档评论(0)