码迷,mamicode.com
首页 > 系统相关 > 详细

深入理解Linux内核 - 第二章 内存寻址 03

时间:2017-08-24 00:02:34      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:images   位长   变量   控制寄存器   lin   span   style   特权   ase   

问题:
1,逻辑地址怎么求?
2,段描述符的base字段怎么求?

逻辑地址:由16位段选择符和32位偏移量组成,并不是说这个地址就是段选择符偏移32位再和偏移量相加。

段选择符:或叫段标识符,是一个16位长的字段。顾名思义,用于选择段的。为了快速找到段选择符,处理器提供段寄存器。

15~3bit,段索引号,2bit TI位, 1 0 位,特权级别。

由于段选择符仅仅在转换成线性地址中发挥作用,则通常认为32位偏移量就是逻辑地址。也即c语言中用&求得一个变量的地址就是逻辑地址。

段描述符:段选择符中,段索引号指向的是在段描述符表中的段描述符,这个段描述符是由8个字节表示。包含Base等9个标识。所以,Base就包含在段描述中

段描述符放在全局描述符表(GDT)或局部述符表中(LDT)。GDT存放在内存中,地址和大小放在gdtr控制寄存器中。LDT放在ldtr控制寄存器中。

TSS:任务状态段。任务状态主要是由一些寄存器来表示,因此这个段用来保存处理器寄存器的内容。这个段只能在GDT中

线性地址:段描述符中的Base+逻辑地址偏移量

技术分享

 

问题:段描述符中的字段含义?

深入理解Linux内核 - 第二章 内存寻址 03

标签:images   位长   变量   控制寄存器   lin   span   style   特权   ase   

原文地址:http://www.cnblogs.com/fresh-fish/p/7420667.html

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