x86中内存管理寄存器(GDTR、LDTR、IDTR和TR).docVIP

x86中内存管理寄存器(GDTR、LDTR、IDTR和TR).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
x86中内存管理寄存器(GDTR、LDTR、IDTR和TR)

x86中内存管理寄存器 收藏 一、内存管理寄存器 处理器提供了4个内存管理寄存器(GDTR、LDTR、IDTR和TR),用于指定内存分段管理所用系统表的基地址,如图4-2所示。处理器为这些寄存器的加载和保存提供了特定的指令。有关系统表的作用请参见4.2节保护模式内存管理中的详细说明。 (点击查看大图)图4-2 内存管理寄存器 GDTR、LDTR、IDTR和TR都是段基址寄存器,这些段中含有分段机制的重要信息表。GDTR、IDTR和LDTR用于寻址存放描述符表的段。TR用于寻址一个特殊的任务状态段(Task State Segment,TSS)。TSS中包含着当前执行任务的重要信息。 (1)全局描述符表寄存器GDTR GDTR寄存器中用于存放全局描述符表GDT的32位的线性基地址和16位的表限长值。基地址指定GDT表中字节0在线性地址空间中的地址,表长度指明GDT表的字节长度值。指令LGDT和SGDT分别用于加载和保存GDTR寄存器的内容。在机器刚加电或处理器复位后,基地址被默认地设置为0,而长度值被设置成0xFFFF。在保护模式初始化过程中必须给GDTR加载一个新值。 (2)中断描述符表寄存器IDTR 与GDTR的作用类似,IDTR寄存器用于存放中断描述符表IDT的32位线性基地址和16位表长度值。指令LIDT和SIDT分别用于加载和保存IDTR寄存器的内容。在机器刚加电或处理器复位后,基地址被默认地设置为0,而长度值被设置成0xFFFF。 (3)局部描述符表寄存器LDTR LDTR寄存器中用于存放局部描述符表LDT的32位线性基地址、16位段限长和描述符属性值。指令LLDT和SLDT分别用于加载和保存LDTR寄存器的段描述符部分。包含LDT表的段必须在GDT表中有一个段描述符项。当使用LLDT指令把含有LDT表段的选择符加载进LDTR时,LDT段描述符的段基地址、段限长度以及描述符属性会被自动地加载到LDTR中。当进行任务切换时,处理器会把新任务LDT的段选择符和段描述符自动地加载进LDTR中。在机器加电或处理器复位后,段选择符和基地址被默认地设置为0,而段长度被设置成0xFFFF。 (4)任务寄存器TR TR寄存器用于存放当前任务TSS段的16位段选择符、32位基地址、16位段长度和描述符属性值。它引用GDT表中的一个TSS类型的描述符。指令LTR和STR分别用于加载和保存TR寄存器的段选择符部分。当使用LTR指令把选择符加载进任务寄存器时,TSS描述符中的段基地址、段限长度以及描述符属性会被自动加载到任务寄存器中。当执行任务切换时,处理器会把新任务的TSS的段选择符和段描述符自动加载进任务寄存器TR中。 发表于 @ 2009年07月06日 18:00:00 | 评论( 0 ) | 编辑| 举报| 收藏 旧一篇:x86中的页表结构和页表项格式 | 新一篇:SIM卡体系结构 本文来自CSDN博客,转载请标明出处: /yyt7529/archive/2009/07/06/4325980.aspx Linux操作系统下关于引导和初始化的问题模式转换的控制:   x86保护模式比实模式多了几个寄存器:全局描述符表寄存器(GDTR),中断描述符表寄存器(IDTR),局部描述符表寄存器(LDTR)和任务寄存器(TR).另外,一些寄存器的功能得到了扩展,例如指令指针成为EIP,长度32位;标志寄存器(EFLAGS)的更多位得到了利用.四个控制寄存器CR0-CR3都得到了利用.   GDTR(48位)在物理存储器地址空间定义了全局描述符表GDT(每个描述符8字节).   IDTR(长度同GDTR)定义了中断描述符表IDT.(256个中断,每个中断门8字节)   在从实模式转到保护模式前必须将GDTR的基址BASE和限长limit(16位)的值装入GDTR;IDTR也是.这两个表的装入和保存有特殊的指令LGDT SGDT LIDT SIDT   16位的LDTR并不直接定义一个局部描述符表,他只是一个指向GDT中LDT描述符的选择符.选择符装入LDTR相应的描述符就能从全局存储器中读出来装入局部描述符表高速缓存,该描述符为当前任务创建了一个LDT。   控制寄存器   CR0的低五位是机器状态字MSW,包含保护模式配置和状态信息.PE(保护模式允许)位重启时清零允许实模式操作,为进入保护模式将PE设为1.一旦处于保护模式就不能再设回到实模式,除非重启.MP(数学协处理器存在)设为1表示该系统有一个数学协处理器.如果用到了软件模拟器执行数学运算,那么EM(模拟)位应设为1,一次只能设置其中的1位.R(扩展类型)表示用的是80287还是80387,R为1表示80387.TS(任务切换)在做任务切换的时候自动设置.   在保护模

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档