段描述符S位,TYPE域
S=1,表示代码段/数据段;
S=0,表示系统段。
Type 类型描述如下表:
类型域 | 描述 | ||||
十进制 | 数据段 |
| |||
| E | W | A | ||
0 | 0 | 0 | 0 | 0 | 只读 |
1 | 0 | 0 | 0 | 1 | 只读,可访问 |
2 | 0 | 0 | 1 | 0 | 可读,可写 |
3 | 0 | 0 | 1 | 1 | 可读,可写,可访问 |
4 | 0 | 1 | 0 | 0 | 只读,向低扩展 |
5 | 0 | 1 | 0 | 1 | 只读,向低扩展,可访问 |
6 | 0 | 1 | 1 | 0 | 可读,可写,向低扩展 |
7 | 0 | 1 | 1 | 1 | 可读,可写,向低扩展,可访问 |
| 代码段 |
| |||
|
| C | R | A |
|
8 | 1 | 0 | 0 | 0 | 只执行 |
9 | 1 | 0 | 0 | 1 | 只执行,可访问 |
10 | 1 | 0 | 1 | 0 | 可执行,可读 |
11 | 1 | 0 | 1 | 1 | 可执行,可读,可访问 |
12 | 1 | 1 | 0 | 0 |
|
13 | 1 | 1 | 0 | 1 |
|
14 | 1 | 1 | 1 | 0 |
|
15 | 1 | 1 | 1 | 1 |
|
数据段
A 访问位,表示该位最后一次被操作系统清零后,该段是否被访问过.每当处理器将该段选择符置入某个段寄存器时,就将该位置1.
W 是否可写
E 扩展方向
E=0,表示向上扩展,windows只使用向上扩展;E=1,表示向下扩展。
以上图为例,使用向上扩展,段的范围就是红色部分;使用向下扩展,段的范围就是绿色部分。
代码段
C=0,表示非一致代码段;C=1,表示一致代码段。
R=0,表示不可读;R=1,表示可读。
A=0,表示段未被访问;A=1,表示段曾被访问。
三、练习
1、判断哪些是系统段描述符?哪些是代码或者数据段描述符?
看S位,高4字节的第5个十六进制字符的最低位就是S位。
这里的‘9’是1001,S=1,就是代码段或数据段.
这里的8是1000,S=0,就是系统段。
2、判断哪些是代码段描述符?哪些是数据段描述符?
根据题意,先找几个S=1的来分析、。
00cf9300 0000ffff
type=0x3=0011
最高位是0,是数据段。
00cffb00 0000ffff
type=0xb=1011
最高位是1,是代码段。
3、拆分几个数据段:E W A
00cf9300 0000ffff
0x3=0011
E:0
W:1
A:1
4、拆分几个代码段:C R A
00cffb00 0000ffff
0xb=1011
C:0
R:1
A:1
5、拆分几个系统段描述符
80008b04 200020ab
0x8=1000,S=0,所以是系统段;
0xb=1011
5.系统段描述符
当S=0时,该段描述符为系统描述符.系统描述符有分为以下类型: