(1)段描述符,段选择子,段寄存器

一.段描述符

实模式: 在这里插入代码片
	寻址方式:段基址<<4(20位地址)+段内偏移
保护模式:
	寻址方式:段基址计算方式不一样,但是段内偏移一样
	特点:增加了许多约束条件,信息量多,一个寄存器(GDTR)放不下,所以指向了一个地址  全局描述符(里面有很多表项)
		         每一个表项称为段描述符(64字节)         段描述符描述了内存段的起始地址,大小,权限

在这里插入图片描述

段描述符结构:

在这里插入图片描述
让我们拆分段描述符:
在这里插入图片描述
第三个:00cf9300`0000ffff
二进制:0000 0000 1100 1111 1001 0011 0000 0000
0000 0000 0000 0000 1111 1111 1111 1111
Base31:24=00000000
G = 1
D/B = 1
L = 0
AVL = 0
Segment Limit 19:16 = 1111
p = 1
DPL = 00
s = 1
Type = 0011
Base23:16 = 00000000
Base Address 15:00 = 0x0000
Segment limit 15:00 = 0xFFFF

二.段选择子

在这里插入图片描述
RPL:0~1位表示RPL,代表请求特权级别,通俗的说是以什么样的特权去访问你
TI:TI为0,查GDT表,TI为1,查LDT表(Window一般为0,不使用LDT)
Index:LDT表或者GDT表的下标,从0开始

拆分段选择子:在这里插入代码片
段选择子=0x0023
二进制 = 0000 0000 0010 0011
index = 0000 0000 0010 0 = 4
TI = 0
RPL = 11 = 3

三.段寄存器

段描述符只有64位,通过拆分属性可以转变成96位
其中段寄存器有很多种 ES CS SS DS FS GS

段寄存器结构:

WORD Selector;     //**16位  也就是可见部分 段选择子**
WORD Atrribute;    //**16位 8:23  高四字节 代表着是否可读,可写,可执行** 
DWORD Base;        //32位 Base31:24 + Base23:16 + Base15:00  段从哪里开始
DWORD Limit;       //Segment Limit 19:16 + Segment Limit 15:00  线长

未完待续

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值