您好,欢迎来电子发烧友网! ,新用户?[免费注册]

当前位置:电子发烧友网 > 图书频道 > 电子 > 《计算机组成原理与汇编语言》 > 第7章 Pentium简介

第3节 特权级与描述符

7.3.1 特权级

   在8086的系统中,由于系统程序和用户程序是放在一起的,同属一个级别,因此用户程序运行中就有可能破坏系统程序。这是早期80X86CPU一个重要的缺陷。

自从80286以后,逐步发展并完善了保护模式的功能,使系统的特权级为四级,如图7.9所示。 

7.3.2 描述符

   
1 .选择符
  
 选择符的格式如图7.10所示。

2. 段描述符    从80386开始,段描述符均由8个字节(64位)构成,其格式如图7.11所示。 由图711可以看到段描述符的构成:    ①线性基地址(32位)用来指示某段的起始地址。    ②段限制(20位)用来限制一段的最大长度。    ③G位用于定义段限制所使用的单位。    ④ D/B位对于不同类型的段,有不同解释:       对于代码段,D=1为32位操作;D=0为16位操作。       对于堆栈段,B=1为32位操作;B=0为16位操作。       对于数据段,B=1为32位操作;B=0为兼容80286。    ⑤AVL位为系统软件所利用。    ⑥访问权限各位如图712所示。  访问权限规定了段描述符所定义段的属性。 例如,P位规定该段是否存在;DPL两位编码用来规定特权级;S=1表示代码段或属于数据类段,S=0则表示该描述符为系统描述符;E=1表示代码段,E=0表示数据类段。        ED/C和W/R对数据类段和代码段具有不同含义:       (a)对于代码段    C=1为一致性代码段;C=0表示非一致性代码段。    R=1表示可读代码段;R=0表示只能执行不可读的代码段。       (b) 对数据类段    ED=0表示偏移值必须小于或等于段限制。    ED=1表示偏移值大于段限制。    W=0表示该段不可写;W=1表示可写。   3.系统描述符    系统描述符用于描述系统中的每个任务的任务状态段(TSS)的属性或局部描述符表的属性。由系统描述符中TYPE字段的编码来表征该系统描述符是属于什么描述符的。    (1)系统描述符的格式    系统描述符的格式如图7.13所示。  系统描述符中,有许多项与前面的段描述符的定义是一样的,这里不再重复。    图7.13中,系统描述符的P位指示系统描述符是否有效:P=1为有效;P=0为无效。DPL利用两位编码表示系统描述符的访问特权级0~3。    TYPE的编码用来表示不同的系统描述符,其中:    0001 表示为可用的80286TSS描述符    0010 表示为局部描述符表LDT的描述符    0011 表示为处于忙状态80286TSS描述符    1001 表示为可用TSS描述符

1011 表示处于忙状态的TSS描述符 0000 1000 1010 1100 剩余的TYPE类型编码是留给中断与异常情况的。

(2)中断描述符 中断描述符中,与前相同部分不再说明。

 

               选择符:中断响应过程中利用选择符可以得到中断服务程序的描述符。由其线性基地址再加上中断描述符的偏移量,便 可获得中断服务程序的入口地址。   

偏移量:为32位,与线性基地址一起决定中断服务程序的入口地址。偏移量对任务门是无效的。

TYPE的编码在中断描述符中的定义如下:

   0100 表示为80286调用门
   0101 表示为任务门
   0110 表示为80286调用门
   0111 表示为80286异常门
   1100 表示为80386以上调用门
   1110 表示为80386以上中断门
   1110 表示为80386以上异常门