搜索
当前位置: 秒秒彩平台 > 段表地址 >

linux下的分段分页机制将一个逻辑地址转换到物理地址的问题??

gecimao 发表于 2019-06-24 19:43 | 查看: | 回复:

  linux下的分段分页机制将一个逻辑地址转换到物理地址的问题?????

  linux下的分段分页机制将一个逻辑地址转换到物理地址的问题?????

  linux下的分段分页机制将一个逻辑地址转换到物理地址的问题?????一个逻辑地址经过分段后得到的是线性地址,我挺郁闷的这个线性地址到底如何得到的???应为linux的线性地址是个...

  linux下的分段分页机制将一个逻辑地址转换到物理地址的问题?????

  一个逻辑地址经过分段后得到的是线性地址,我挺郁闷的这个线性地址到底如何得到的???应为linux的线为对应物理页偏移地址。。。。然而这个逻辑地址是经过选择子选出来的段基址,加上段内偏移,出来确实是个32位地址。。。似乎这个中间的步骤被屏蔽了是吧???我想知道这里面是如果把逻辑地址转换成这个分成三个部分索引的线性地址!前面是段基址然后段偏移就出来个线性地址这叫我无法接受,刨根究底!求助。。。。求助!展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  你要问的应该是Intel系列CPU的寻址吧?其他系列的CPU没有逻辑地址线性地址以及程序地址之分的,这三者是同一回事,但是Intel系列CPU为了保持向前兼容,不得已这样做的。以80386为例简单说一下吧:

  在以前Intel8086中逻辑地址是这样的格式,16位段地址(CS,DS,SS,ES):16位段内偏移。

  在80386中,为了兼容8086,新增两个段寄存器,一个是全局性的段描述表寄存器GDTR,另一个是局部性的段描述表寄存器LDTR,分别用来指向存储在内存中的一个段描述结构数组,或称为段描述表。

  在此基础上,段寄存器的高13位用作访问段描述表中具体描述结构的下标(index),如下图:

  GDTR或者LDTR中的段描述表的指针和段寄存器中的index结合在一起,确定了一个具体的段描述表项,每个表项(64位,8字节)的定义如下图:

  结构中的B31~B24和B23~B16分别为基地址的bit16~bit23和bit24~bit31。这样,16位基地值确定了,将这16位地址左移16位,与上逻辑地址的16位段内偏移地址,就得到32位的线性地址,其后的线性地址到物理地址的转换你明白的,就不多说了。

本文链接:http://latharnaog.com/duanbiaodizhi/553.html
随机为您推荐歌词
推荐文章

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部