系统地址寄存器 GDTR LDTR IDTR TR 简单描述

9080阅读 1评论2013-05-10 大见DJ
分类:服务器与存储

80486中,处理器提供了4个系统地址寄存器 GDTRLDTRIDTRTR。这四个专用的寄存器用来引用在保护方式下使用,所以人们又称为保护方式寄存器。

1)全局描述符表寄存器GDTR48位寄存器。   用于存放全局描述符表GDT32位的线性基地址和16位的表限长值。基地址指定GDT表中字节0在线性地址空间中的地址,表长度指明GDT表的字节长度值。指令LGDTSGDT分别用于加载和保存GDTR寄存器的内容。在机器刚加电或处理器复位后,基地址被默认地设置为0,而长度值被设置成0xFFFF。在保护模式初始化过程中必须给GDTR加载一个新值。  

2)中断描述符表寄存器IDTR48位寄存器。   GDTR的作用类似,IDTR寄存器用于存放中断描述符表IDT32位线性基地址和16位表长度值。指令LIDTSIDT分别用于加载和保存IDTR寄存器的内容。在机器刚加电或处理器复位后,基地址被默认地设置为0,而长度值被设置成0xFFFF80486为每个中断或异常都定义了一个中断描述符。

3)局部描述符表寄存器LDTR16位寄存器。  其内保存的是16位的选择符。LDTRGDTR有所不同,定义也有所不同,对于LDT来说,首先要根据16位的选择符从GDT中选择一个LDT描述符(换句话说,LDT的描述符放在GDT中),送入描述符高速缓冲寄存器(64)中,以确定当前局部描述符LDT所在的位置的基地址和界限值。

4)任务寄存器TR16位寄存器。   其内保存的是任务状态段TSS16位段选择符。每项任务都配有一个任务状态段TSS,用来描述该任务的运行状态。就用16位的选择符来检索任务状态段。总是将当前任务的TSS的选择符放在TR中,而TSS的描述符放在TSS描述符高速缓冲寄存器中(针对这句话一下说明)

在保护方式下,选择器寄存器的D1 D0是特权标志,D2为描述符表类型标志,高13位是选择码,指出本段的描述符在由D2指出的描述符表中的逻辑排序。当一个段第一次被访问时,首先根据指令给出选择器的D2位及高13位,到内存中相应的描述符表内取出相应的描述符(64),送入对应的描述符高速缓冲寄存器(64),再从描述符中取出段基址进行逻辑到线性地址的变换。以后再访问该段时,直接从描述符寄存器(64)中取地址信息,免去从内存中选取描述符的过程,实现加速。

在系统中 GDTIDT 只有一个,所以GDTR,IDTR中存放的是该表入口地址;而任务不只一个,所以LDTRTR存放的是当前任务的选择符。

上一篇:Linux 我始终还是未能放弃你
下一篇:内存储器分段管理

文章评论