Chinaunix首页 | 论坛 | 博客
  • 博客访问: 471938
  • 博文数量: 134
  • 博客积分: 3056
  • 博客等级: 中校
  • 技术积分: 1150
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-14 15:53
文章分类
文章存档

2013年(1)

2010年(133)

我的朋友

分类: LINUX

2010-06-05 17:28:38

 

    处理器提供了4个内存管理寄存器(GDTRLDTRIDTRTR),用于指定分段内存管理所使用的系统表的基地址。处理器为这些寄存器加载和保存提供了特定的指令。


 

 

    GDTRLDTRIDRTRTR都是段基址寄存器,这些段中包含分段机制的重要信息表,GDTRIDTRLDTR用于寻址存放段描述符的段。TR用于寻址一个特殊任务状态段TSSTask State Segment)TSS段中包含当前窒息感任务的重要信息。

1.全局描述符表寄存器GDTR

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

2.中断描述符表寄存器IDTR

    与GDTR的作用类似,IDTR寄存器用于存放中断描述符表IDT32位线性基地址和16位表长度值,指令LIDTSIDT分别用于加载和保存IDTR寄存器的内容。在机器刚加电或者处理复位后,基地址被默认设置为0,而长度值设置为0XFFFF

3.局部描述符表寄存器LDTR

    LDTR寄存器中用于存放局部描述符LDT32位线性基地址、16位段限长和描述符属性值。LLDTSLDT分别用于加载和保存LDTR寄存器的段描述符部分。包含LDT表的段必须在GDT表中有一个段描述符项,当使用LLDT指令把含有LDT段的选择符加载进LDTR时,LDT段描述符的段基地址、段限长度以及描述符属性会被自动加载到LDTR中。当进行任务切换时,处理器会把新任务的段选择符合段描述符自动加载近LDTR中。在机器刚加电或者处理复位后,基地址被默认设置为0,而长度值设置为0XFFFF

4.任务寄存器TR

    TR寄存器用于存放当前任务TSS段的16位段选择符、32位基地址、16位段长度和描述符属性值。它引用GDT表中一个TSS类型的描述符。指令LTRSTR分别用于加载和保存TR寄存器的段选择符部分。当使用LTR指令把选择符加载近任务寄存器时,TSS描述符中的段基地址、段限长度以及描述符属性会被自动的加载到任务寄存器中。当执行任务切换时,处理器会把新任务TSS的段选择符和段描述符自动加载到TR寄存器中。

 

阅读(904) | 评论(0) | 转发(0) |
0

上一篇:8086寄存器分类

下一篇:[转]控制寄存器

给主人留下些什么吧!~~