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