码迷,mamicode.com
首页 > 其他好文 > 详细

段选择符

时间:2017-10-16 18:07:47      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:bsp   线性   线性地址   nbsp   base   多个   选择   描述符   标识   

逻辑地址到线性地址:

逻辑地址 = 段标识符(或者叫段选择符)16位 + 偏移量 32位

段标识符 = index + tl + rpl

其中,cpu中的段寄存器只保存段标识符,根据其中的tl 确定段描述符在GDT还是LDT中,从不同的寄存器获取线性基地址,再加上index*8就得到了段描述符的地址,从段描述符中,取出base字段,再加上逻辑地址中的偏移量,就得到线性地址。

问题是:偏移量存哪里? 

 

线性地址到物理地址:

内存分页:将内存按照固定大小(比如4KB)分成多个页,线性地址转换成逻辑地址,要通过转换表

如果不通过转换表,那么4KB一页,4GB就是1024*1024页,每页的首地址用四个字节表示,就是4B*1024*1024 = 4MB的空间来表示首地址(可以看出是一本目录,从第一页到最后一页的页码都保存在目录里,目录本身就会很厚)。

如果用二级模式转换,10+10+12的话 形成跳跃的,树级的地址表示,可以表示2的32次方个线性地址。

 

段选择符

标签:bsp   线性   线性地址   nbsp   base   多个   选择   描述符   标识   

原文地址:http://www.cnblogs.com/chuliang/p/7677841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!