(5)段描述符S位,TYPE域

一、段描述符S位

(5)段描述符S位,TYPE域S=1,表示代码段/数据段;
S=0,表示系统段。

二、段描述符TYPE域

TYPE域共4位,可以通过查表来确定其含义。
(5)段描述符S位,TYPE域
TYPE域高位为0时,表示数据段;高位为1时,表示代码段。

数据段

E=0,表示向上扩展,windows只使用向上扩展;E=1,表示向下扩展。

(5)段描述符S位,TYPE域
以上图为例,使用向上扩展,段的范围就是红色部分;使用向下扩展,段的范围就是绿色部分。

A=0,表示段未被访问;A=1,表示段曾被访问。

代码段

C=0,表示非一致代码段;C=1,表示一致代码段。
R=0,表示不可读;R=1,表示可读。
A=0,表示段未被访问;A=1,表示段曾被访问。

三、练习

(5)段描述符S位,TYPE域

1、判断哪些是系统段描述符?哪些是代码或者数据段描述符?
看S位,高4字节的第5个十六进制字符的最低位就是S位。
(5)段描述符S位,TYPE域
这里的‘9’是1001,S=1,就是代码段或数据段。

(5)段描述符S位,TYPE域

这里的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位,TYPE域

查表得 32-Bit TSS(Busy)