【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-20
文件下载与邀请翻译者
学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。
讲解下载英特尔开发手册的文章
翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么,欢迎你的加入。
另外,我不仅仅是打算翻译这一种手册,以后,可能还需要去翻译许多的英文技术文档。
本节翻译
【原文】2.4.2. Local Descriptor Table Register (LDTR)
The LDTR register holds the 16-bit segment selector, 32-bit base address, 16-bit segment limit, and descriptor attributes for the LDT. The base address specifies the linear address of byte 0 of the LDT segment; the segment limit specifies the number of bytes in the segment. See Section
3.5.1, “Segment Descriptor Tables”, for more information on the base address and limit fields.
【翻译】2.4.2. 局部描述符表寄存器(LDTR)
LDTR寄存器保存了LDT的16位段选择器、32位基地址、16位段限制和描述符属性。基址指定了LDT段的0号字节的线性地址;段界限指定了段中的字节数。参见3.5.1节。,“段描述符表”,获取更多关于基地址和限制字段的信息。
【讲评】局部描述表寄存器(LDTR)与全局描述符表寄存器(GDTR)中的段界限字段,也就是limit字段有着相似的性质。这个段界限字段,所指的,都规定了描述符表的最后一字节所占用的内存地址。局部描述符表寄存器的段界限,limit字段,规定了这个局部描述符表所占用的最后一字节的内存地址。全局描述符表寄存器的段界限,limit字段,则是规定了全局描述符表所占用的最后一字节的内存地址。
假定某一个局部描述符表寄存器中,段基址字段的值为0x300000,也就是3M。然后呢,整个的这个描述符表,一共是8个项目,每一个项目是占用了8个字节,则一共占据着64个字节的内存。所以呢,这个局部描述符表,占据着0x300000到0x30003F的内存地址。这样一来呢,若是以0x300000为段基址,则首地址的偏移为0,最后一字节的偏移为0x3F,也就是十进制的63,。所以这个局部描述符表,它的段界限,用十六进制数来表示,那就是0x3F,是十进制的63,而非与十进制的64所对应的十六进制数0x40。
【原文】The LLDT and SLDT instructions load and store the segment selector part of the LDTR register, respectively. The segment that contains the LDT must have a segment descriptor in the GDT. When the LLDT instruction loads a segment selector in the LDTR, the base address, limit, and descriptor attributes from the LDT descriptor are automatically loaded into the LDTR.
【翻译】LLDT和SLDT指令分别加载和存储LDTR寄存器的段选择器部分。包含LDT的段必须在GDT中有一个段描述符。当LLDT指令加载LDTR中的段选择器时,LDT描述符中的基址、limit和描述符属性会自动加载到LDTR中。