(5)段描述符S位,TYPE域
一、段描述符S位
S=1,表示代码段/数据段;
S=0,表示系统段。
二、段描述符TYPE域
TYPE域共4位,可以通过查表来确定其含义。
TYPE域高位为0时,表示数据段;高位为1时,表示代码段。
数据段
E=0,表示向上扩展,windows只使用向上扩展;E=1,表示向下扩展。
以上图为例,使用向上扩展,段的范围就是红色部分;使用向下扩展,段的范围就是绿色部分。
A=0,表示段未被访问;A=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
系统段描述符表
查表得 32-Bit TSS(Busy)