实模式/保护模式,GDT/LDT的含义

保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成 

段描述符寄存器: 存储段描述符 选择器:存储段描述符的索引

PS:原先实模式下的各个段寄存器作为保护模式下的段选择器,80486中有6个(即CS,SS,DS,ES,FS,GS)80位的段寄存器,同时提供6个段左右机器当前运行的地址空间。由选择器CS对应表示的段仍为代码段,选择器SS对应表示的段仍为堆栈段

-----------------------------------------------我是分割线------------------------

段描述符

P,present位,1表示所描述的段存在(有效),为0表示所描述的段无效,使用该描述符会引起异常 DPL,Descriptor privilege,描述符特权级别,说明所描述段的特权级别 DT,描述符类型位,1说明当前描述符为存储段描述符,0为系统描述符或门描述符. TYPE: 位0:A(accessed)位,表明描述符是否已被访问;把选择子装入段寄存器时,该位被标记为1 位3:E(EXECUTABLE?)位,0说明所描述段为数据段;1为可执行段(代码段) 当为数据段时, 位1为W位,说明该数据段是否可写(0只读,1可写) 位2为ED位,说明该段的扩展方向(0向高位扩展,1向低位扩展) 当为可执行段是, 位1为R位,说明该执行段是否可读(0只执行,1可读) 位2为C位,0说明该段不是一致码段(普通代码段),1为一致码段 G为粒度位,0说明LIMIT粒度为字节,1为4K字节. D位: 1.在可执行段中,D为1,表示使用32位地址,32/8位操作数;为0表示使用16位地址,16/8位操作数 2.在由SS寻址的段描述符(堆栈段?)中,D为1表示隐含操作(如PUSH/POP)使用ESP为堆栈指针,/ 为0使用SP(隐含操作:未明确定义段属性类型USE16/USE32?66H,67H?) 3.在向低扩展的存储段中,D为1,表示段的上限为4G;为0上限为64K 存储段描述符的结构表示:

分段管理可以把虚拟地址转换成线性地址,而分页管理可以进一步将线性地址转换成物理地址。当CR0中的PG位置1时,启动分页管理功能,为0时,这禁止启动分页管理功能,并且把线性地址作物理地址使用。

虚拟地址转为线性地址:

线性地址= 段基指 + 偏移地址

32位线性地址转为物理地址 32位分为: 页目录索引:占最高10位,指示页目录表中第几个页表描述符 页表索引:占12位到21位,也是10位。指示这页表中第几个页描述符 页描述符:线性地址的低12位为页内偏移量。

posted @ 2013-05-20 12:09  长烟慢慢  阅读(914)  评论(0编辑  收藏  举报