您的位置:首页 > 其它

为什么保护模式跳回实模式要选择一个NormalSelector

2007-04-10 11:28 288 查看
转自:http://www.hackhome.com/2005/1-14/18234569320.shtml 

 

在切换到实模式之前,把一个指向似乎没有用的数据段的描述符Normal的选择子装载到DS和ES。这是为什么呢?

实模
式下
段描
述符
高速
缓冲
寄存
器的
内容
段寄存器段基地址段界限(固定)段属性(固定)
存在性特权级已存取粒度扩展方向可读性可写性可执行堆栈大小一致特权
CS当前CS*160000FFFFHY0YBUYYY-N
SS当前SS*160000FFFFHY0YBUYYNW-
DS当前DS*160000FFFFHY0YBUYYN--
ES当前ES*160000FFFFHY0YBUYYN--
FS当前FS*160000FFFFHY0YBUYYN--
GS当前GS*160000FFFFHY0YBUYYN--
     在分段管理机制一文中已介绍过,每个段寄存器都配有段描述符高速缓冲寄存器,这些高速缓冲寄存器在实方式下仍发挥作用,只是内容上与保护模式下有所不同。如上表所示,其中“Y”表示“是”; “N”表示“否”;“B”表示字节;“U”表示向上扩展,“W”表示以字方式操作堆栈。段基地址仍是 32位,其值是相应段寄存器值(段值)乘以16,在把段值装载到段寄存器时刷新。由于其值是16位段值乘上16,所以在实模式下基地址实际上有效位只有20位。每个段的32位段界限都固定为0FFFFH,段属性的许多位也是固定的。所谓固定是指在实方式下不可设置这些属性值,只能继续沿用保护方式下所设置的值。因此,在准备结束保护模式回到实模式之前,要通过加载一个合适的描述符选择子到有关段寄存器,以使得对应段描述符高速缓冲寄存器中含有合适的段界限和属性。本实例GDT中的描述符Normal就是这样一个描述符,在返回实模式之前把对应选择子Normal_Sel加载到DS和ES就是此目的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  扩展
相关文章推荐