物理存储器150GDTR...GDT限长31基址015LDTR选择符LDToLDTR150高速缓存限长31基址..程序不可见LDTn80386DX图9.5(a)带全局和局部描述表的任务
LDTR 选择符 15 0 LDTR 高速缓存 限长 基址 15 0 31 程序不可见 80386DX 物理存储器 GDT LDT0 LDTn 图9.5 (a) 带全局和局部描述表的任务 GDTR 限长 基址 15 0 31
9.3.3局部描述符表寄存器图9.5(b)说明16位的LDTR的值并不直接定义一个局部描述符表。它只是一个指向GDT中LDT描述符的选择符。如果LDTR中装入了选择符,相应的LDT描述符就能够从存储器的全局描述符表中读出来并装入CPU内部的“LDTR高速缓存”中。正是这个描述符才确定了局部描述符表。如图9.5(b)所示,32位的基址值标识物理存储器中LDT的起始位置,16位的限长值定义LDT的大小。将该描述符装入高速缓存就为当前任务创建了一个LDT。也就是说,每次LDTR中装入选择符,则局部描述符表的描述符被缓存,从而激活一个新的LDT
9.3.3局部描述符表寄存器 ◼ 图9.5(b)说明16位的LDTR的值并不直接定义一个局部 描述符表。它只是一个指向GDT中LDT描述符的选择 符。如果LDTR中装入了选择符,相应的LDT描述符 就能够从存储器的全局描述符表中读出来并装入CPU 内部的“LDTR高速缓存”中。正是这个描述符才确 定了局部描述符表。 ◼ 如图9.5(b)所示,32位的基址值标识物理存储器中 LDT的起始位置,16位的限长值定义LDT的大小。将 该描述符装入高速缓存就为当前任务创建了一个LDT。 也就是说,每次LDTR中装入选择符,则局部描述符 表的描述符被缓存,从而激活一个新的LDT
物理存储器LDT描述符150GDTLDTR101615471基址限长LDT(b)给局部描述表寄存器赋值以定义一个局部描述符表图9.5(b)局部描述表机制
LDTR 47 16 15 0 基址 限长 物理存储器 LDT描述符 GDT LDT 15 0 图9.5 (b) 局部描述表机制 (b) 给局部描述表寄存器赋值以定义一个局部描述符表
9.3.4控制寄存器保护模式的寄存器模型包括四个系统控制寄存器,在图9.2中标为CR~CR3。图9.6给出了它们的详细信息,其中CR.的低5位是系统控制标志,这些位组成了人们熟知的机器状态字(MSW)。80386DX的分页机制中还用到了寄存器CRo、CR,和CR,中的其他位。CR,保留未用。3112 110CR保留页目录基址寄存器(PDBR)CR2缺页线性地址CR保留PTPEM保留RCRGSMP
9.3.4控制寄存器 ◼ 保护模式的寄存器模型包括四个系统控制寄存器,在图 9.2中标为CR0 ~CR3。图9.6给出了它们的详细信息,其 中CR0的低5位是系统控制标志,这些位组成了人们熟知 的机器状态字(MSW)。80386DX的分页机制中还用到了 寄存器CR0、CR2和CR3中的其他位。CR1保留未用
9.3.5任务寄存器任务寄存器(TR)在80386DX微处理器的保护模式任务切换机制中很重要。该寄存器存放的是一个称为选择符的16位索引值。初始的选择符必须由软件装入TR,它开始第一个任务。之后80386DX再执行任务切换的指令时就自动修改选择符。如图9.7所示,TR中的选择符用来确定全局描述符表中描述符的位置。注意当选择符装入TR的时候,相应的任务状态段(TSS)描述符自动从存储器中读出并装入任务描述符高速缓存中。该描述符定义了一个称为任务状态段(TSS)的存储块,它提供了该任务状态段的段基址和限长
9.3.5任务寄存器 ◼ 任务寄存器(TR)在80386DX微处理器的保护模式任务切 换机制中很重要。该寄存器存放的是一个称为选择符的 16位索引值。初始的选择符必须由软件装入TR,它开始 第一个任务。之后80386DX再执行任务切换的指令时就 自动修改选择符。 ◼ 如图9.7所示,TR中的选择符用来确定全局描述符表中描 述符的位置。注意当选择符装入TR的时候,相应的任务 状态段(TSS)描述符自动从存储器中读出并装入任务描述 符高速缓存中。该描述符定义了一个称为任务状态段 (TSS)的存储块,它提供了该任务状态段的段基址和限长