77百科网
当前位置: 首页 生活百科

windows存储器管理机制(Windows-保护模式-X86-段寄存器结构分析)

时间:2023-06-29 作者: 小编 阅读量: 1 栏目名: 生活百科

由段寄存器当中的TI位来决定段寄存器当中的Attribute,Base,limit三个部分存储在GDT表当中还是LDT表当中。详细图下图:P属性作业:P=1段描述符有效,P=0段描述符无效。TYPE属性当中11位为0则表示数据段,为0则表示数据段。在系统段描述符当中不同的TYPE属性表示含义如下图:6.5;DPL属性该属性只有两种值,00和11。

Windows-保护模式-X86-段寄存器结构分析段寄存器结构分析一;段寄存器内部结构

段寄存器总共有96bit,可见部分16bit。

l Selector:16bit 可见部分,段选择子

l Attribute:16bit 不可见部分,表示段属性,表示了当前段寄存器是可读的还是可写的还是可执行的。

l Base:32bit 不可见部分,表示基址,段从那里开始

l Limit:32bit 不可见部分,表示基址的长度,baselimit 可以确定一个段的大小。

二;段寄存器种类

ES,CS,SS,DS,FS,GS,LDTR,TR……

三;Selector

Selector段选择子,本质上就是有一个数字值,主要作用是通过它来构建段寄存器当中的不可见部分。该部分内容功能如下图:

l Index:在GDT数组或LDT数组当中的索引号(3~15bit)

l TI:当TI=0则表示不可见内容存放在GDT表当中。TI=1,则在LDT表当中。(2bit)

l RPL:请求特权级。以什么样的权限去访问段。(0~1bit)

四;GDTR寄存器与LDTR寄存器

参考连接:https://blog.csdn.net/jadeshu/article/details/72837230

五;GDT表与LDT表

GDT表与LDT表当中保存这段描述符(即段寄存器当中不可见部分)其中GDT表的基址存储在GDTR寄存器当中,LDT表的基址保存在GDT表当中。由段寄存器当中的TI位来决定段寄存器当中的Attribute,Base,limit三个部分存储在GDT表当中还是LDT表当中。

六;段描述符

段描述符存储在GDT表或者在LDT表当中,总共64bit。主要结构如下图:

我们通过windbg来查看一下。

---------------------------------------------------------------------------

注释:段描述符高4字节对应图中上半部分32bit,低4字节对应图中下半部分32bit。

6.1;P属性

P属性在段描述符,位于高4字节,下标为15的位置。详细图下图:

P属性作业:

P=1 段描述符有效,P=0 段描述符无效。

6.2;G属性

G属性位置如下图:

G作用:

G=0,Limit 的单位是字节,意味着Limit最大的界限是000FFFFFH。

G=1,Limit 的单位是4KB,意味着Limit最大的界限是FFFFFFFFH。

6.3;S属性

S属性位置如下图:

S属性作用:

S=1,段描述符表示代码段或者数据段描述符。

S=0,段描述符表示系统段描述符。

6.4;TYPE属性

TYPE属性如下图:

TYPE属性的不同含义是根据S属性来决定的。当S=1时和S=0时,TYPE属性的含义时不相同的。

6.4.1;代码/数据描述符

当S=1时,表示该描述符号为代码描述符或者数据描述符。TYPE属性当中11位为0则表示数据段,为0则表示数据段。详细如下图:

数据描述符当中(S=1,TYPE11位=1)

l W表示是否可写,W=0表示不可写,W=1表示可写。

l A表示是否访问过,A=0表示代码没有加载过,A=1表示代码被加载过。

l E向下扩展位,E=0,表示向上扩展,E=1,表示向下扩展。

当S=1时,表示该描述符号为代码描述符或者数据描述符。TYPE属性当中11位为0则表示数据段,为1则表示代码段

l A访问位,A=0,没有访问,A=1,访问过

l R可读位,R=0,不可读,R=1,可读

l C一致位,C=1 一致代码段,C=0非一致代码段

6.4.2;系统段描述符

当S=0时,表示该符号位位系统段描述符。在系统段描述符当中不同的TYPE属性表示含义如下图:

6.5;DPL属性

该属性只有两种值,00和11。具体内容以后分解

6.6;D/B属性

D/B位置如下图:

D/B属性作用:

l 对CS段影响

n D=1,采用32bit寻址方式

n D=0,采用32bit寻址方式

l 对SS段影响

n D=1,隐式堆栈访问指令,使用32bit堆栈指针寄存器ESP

n D=1,隐式堆栈访问指令,使用16bit堆栈指针寄存器SP

l 向下扩展的数据段影响

n D=1,段上线为4GB

n D=0,段上线为64KB

七;段描述符对比段寄存器当中不可见部分

Base部分对应位置如下图:

Limit部分:

Attribute部分:

    推荐阅读
  • 体毛好的人有哪些特征(俗话好男一身毛)

    但是正常情况下,中年人激素水平应该是走下坡路的,这样才符合人体衰老规律,如果激素水平一直很高,有可能面临两个烦心事,一个是头秃得厉害,一个是前列腺不太健康。由此可见,还是保持正常体重比较好,BMI指数别超过24。枕头的高低和材质有关,同时也要按照年龄段选择,小孩子和颈椎不好的人不宜用高枕。枕头陪伴我们一整晚,和睡眠、健康都有关系,大家一定要慎重选择。

  • 什么人不能上坟(盘点哪些人不能上坟)

    什么人不能上坟丈夫去世前三年,妻子不能去扫墓,这个是习俗问题,只要尊重当地的习俗即可。如果当地有此习俗,最好回避,否则日后会带来诸多的麻烦。如果当地没有此习俗,则无关此禁忌。通常来说怀孕的妇女要避开清明拜山上坟活动,不仅如此。严格说来,女性来例假,最好也不要参加此类活动,特别是不能在下午三点后参加清明拜山活动。晦气临门更不合适去穿越阴气扎堆的地方。

  • 周公解梦梦见骑自行车(梦见骑自行车梦境解析)

    周公解梦梦见骑自行车梦见自己骑着自行车在人群里穿来穿去,预示着你是一个有良好控制和管理能力的人,您能够掌管好当前的工作和生活。梦见骑自行车不熟练或刹不住车,预示着你感到控制力下降的感受或是自信心下降的体现。梦见骑自行车上山,预示着你挑战困难的象征,也代表着励志,如果现实中自己能坚持不懈,事业将会取得成功。

  • 血清astalt比值偏高(ALT比值偏低说明什么)

    血清astalt比值偏高血液性检查结果的不同,都会直接影射身体健康状态的差异。所以,在出现血清AST/ALT比值偏低时,代表患者有可能患有肝炎、酒精肝、脂肪肝以及肺炎、心肌缺血性疾病。这种比值偏低的检查结果,通常说明肝脏组织出现疾病性损害,或患有心肌炎、心肌缺血或是肺炎等疾病。所以在体检结果存在异常偏低时,必须要到正规医院接受相关的检查后,才能有效确诊病情的同时而做出合理的治疗。

  • 平凡的世界震撼人心的19句经典(平凡的世界最经典的五句话)

    得知两人的感情后,田父不仅对少安极尽羞辱,更是千方百计地阻挠两人在一起。婚后她始终对向前无感,二人一直是分居状态。然而天有不测风云,感情失意的向前因醉驾酿成车祸,不幸被截掉双腿。得知这一噩耗的润叶懊悔不已,她被桎梏的心灵也瞬间觉醒。后来几经辗转,总算熬到砖厂有起色了,妻子秀莲却患肺癌不治身亡。书中的后半段,少平因矿难舍己救人不幸毁容。

  • 新款北京bj40值得买吗(BJ40BJ80特别版上市售价16.98-31.8万元)

    今天上午,北京BJ80阅兵特别版和北京BJ40L环塔冠军纪念版两款特别版车型于北京正式上市。在外观方面,新车采用了后排隐私玻璃、机盖镀铬装饰罩、腰线镀铬条、红色卡钳以及“北京”标识备胎罩。在动力方面,特别版北京BJ80搭载2.3T6AT的动力组合,发动机最大功率250马力,峰值扭矩350牛·米。

  • 花生毛豆煮多久(花生毛豆需要煮多久)

    煮毛豆需要煮10分钟左右如果不剥壳的话,煮的时间要久一点,一般15分钟左右就煮好了,喜欢吃脆一点的话10分钟左右就差不多了,下面我们就来说一说关于花生毛豆煮多久?我们一起去了解并探讨一下这个问题吧!花生毛豆煮多久煮毛豆需要煮10分钟左右。因为花生也是可以生吃的,所以煮不煮熟关系不大,就是口感上不熟的花生会硬很多。想要煮软花生最好是煮个40分钟,一般要是中火或者是大火。

  • 动物森友怎么去找狐利(游戏攻略)

    与傅达对话的第二天,西施惠会在广播中提到附近岛上有可疑人物出没,这时就是狐利来到岛上了。找到闲逛的狐利后,狐利会提出卖给玩家一件艺术品,不过要价498000铃钱。获得第一件艺术品之后可以去找傅达,并将艺术品捐赠给他,他会表示将在次日扩建博物馆。等待博物馆扩建完工后,玩家就可以正式进入狐利的小船黑市,进行艺术品交易了。

  • 糟鹅做法(简单美味又解馋糟鹅的家常做法)

    糟鹅做法所需食材及调料:鹅,葱,姜,八角,桂皮,香叶,料酒,糟卤,干辣椒,冰凉开水。锅中重新放入清水,水没过鹅即可,然后加姜片、葱结、香叶、八角、桂皮、干辣椒、料酒,盖上锅盖,大火煮开,转小火焖煮半小时。鹅彻底冷却后,放入盆中,淋上糟卤汁,盖上盖,放入冰箱,浸泡5小时以上,时间浸泡越长越入味,口感越好。一道简单的家常糟鹅就做好了。

  • 关于班车停运的通知(同乐汽车客运站暂停营业)

    近日,笔者从深圳宝龙辖区同乐汽车站了解到,为配合目前新型冠状病毒疫情防控,减少人员流动,自2020年2月9日至2020年2月16日,同乐汽车客运站将暂停营业,恢复正常营业为2月17日。在暂停营业期间,车站将保留一名员工值守以及完成每天消杀工作。已提前预定车票的乘客可以免费办理退票手续。深圳龙岗至惠州、博罗、河源、海丰、丰顺、定南、永新、和平、樟树、揭西、陆河、惠来全线停运。