汇编语言课件-NLPIR自然语言处理与信息检索共享平台.PPT

汇编语言课件-NLPIR自然语言处理与信息检索共享平台.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* P=1时表示装入内存,=0表示,不在内存,访问不在内存的段时会引起异常。OS将某个段从内存交换到磁盘时,设置此位为0。当启用页功能的情况下,即使P=1,所描述的段也不一定在物理存储中。P=1,a=0表示在存储器中,没有被访问,可以被替换。 S=1 E=0时为数据段,S=1,E=1时为代码段 扩展方向位:1:高地址向低地址扩展,偏移量大于段长。0:低地址向高地址扩展,偏移量小于段长,段长指上限。 根据段类型中的段扩展方向标志E,处理器以两种不同方式使用段限长Limit。对于向上扩展的段(简称上扩段),逻辑地址中的偏移值范围可以从0到段限长 值Limit。大于段限长Limit的偏移值将产生一般保护性异常。对于向下扩展的段(简称下扩段),段限长Limit的含义相反。根据默认栈指针大小标 志B的设置,偏移值范围可从段限长Limit到0xFFFFFFFF或0xFFFF。而小于段限长Limit的偏移值将产生一般保护性异常。对于下扩段, 减小段限长字段中的值会在该段地址空间底部分配新的内存,而不是在顶部分配。80x86的栈总是向下扩展的,因此这种实现方式很适合扩展堆栈。 一致与非一致代码段的设置原则 系统要保证安全,所以内核要和用户程序分开,内核一定要安全,不能被用户程序干涉,有时用户程序需要访问内核数据,于是OS将内核程序开辟一些可以供用户程序访问的段,但是不允许用户程序写入数据。 1、内核不用知道用户程序的数据,内核不用调用用户程序的数据,内核不用转移到用户程序中来 2、用户程序只能访问到内核的某些共享的段,我们称这些段为一致代码段 3、用户程序不能访问内核不共享的段 一致与非一致代码段的访问原则 对于一致代码段: 1、特权级高的程序不允许访问特权级低的数据(CPL=DPL),即,核心态不允许调用用户态的数据 2、特权级低的程序可以访问到特权级高的数据(如访问内核某些共享的数据段),但特权级CPL不会改变,即,用户态还是用户态 对于非一致代码段: 1、只允许同级访问(CPL=DPL) 2、绝对禁止不同级访问:核心态不使用用户态,用户态也不使用核心态 一致与非一致代码段的判断 一致位:在描述符属性中TYPE(包含4个二进制位)字段的第2位。 当 S=1 时TYPE中的4个二进制位情况: ???? 3?????? 2?????? 1?????? 0 ?? 执行位 一致位 读写位 访问位 执行位:置1时表示可执行,置0时表示不可执行; 一致位:置1时表示一致码段,置0时表示非一致码段; 读写位:置1时表示可读可写,置0时表示只读; 访问位:置1时表示已访问,置0时表示未访问。 ??? 所以一致代码段和非一致代码段的意思就是指这个一致位是否置1,置1就是一致代码段,置0就为非一致代码段。 * 以页为单位,限长为20位。1页=4KB,1个段最长为1M*4KB=4GB。以字节为单位,1个段最长为1MB字节。 * 在内存读写操作中,CPU首先要计算线性地址,这就需要取得段描述符中的基地址,再加上偏移量。接下来,CPU还需要根据段描述符中的属性来确定操作的合法性。 例如,程序要向一个只读段写入数据,CPU不能执行这个写入操作,而且要产生一个异常。另外,如果指定的内存操作数偏移量超过了段限长所规定的范围,也要产生一个异常。因此,在读写内存单元时,CPU需要检查段描述符的内容是否和当前操作相一致。如果每一次都需要到内存中去读取段描述符,那么CPU的运行效率就会极大地降低。为解决这个问题,CPU在内部设置了段描述符高速缓存。 * CPU的分段部件将虚拟地址转换为线性地址。 * CR0控制寄存器中的pg位=1,CR3页目录基址,CR2页故障线性地址 * * ①页目录的地址由CR3的最高20位决定,CR3又被称做页目录基址寄存器PDBR(Page Descriptor Base Register),CR3的低12位=000H。页目录的大小为4KB,由1024个页表描述符组成,每个页表描述符占4个字节。 ②线性地址中高10位为页目录索引,页目录基地址加上页目录索引乘以4获得的地址指向页目录表中一个页表描述符。 ③页表描述符的高20位给出了页表的基地址。页表同样占4KB,由1024个页描述符组成,每个页描述符占4字节。 ④线性地址中的页表索引(10位),指示了被访问的页在页表中的序号。根据页表基地址加上10位页表索引乘以4指向页表中的一个页描述符。 ⑤页描述符的高20位给出了物理页面的基地址的高位20位。 ⑥物理页面的基地址再加上线性地址中12位字节的页内偏移量,便得到物理地址。 * 访问p=0的页产生缺页异常,线性地址被保存在CR2中. * 页表描述符的高20位就是页表基地址的高20位;页描述符的高20位就是物理页基地址的高20位。也就是说,

文档评论(0)

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

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

1亿VIP精品文档

相关文档