文件下载与邀请翻译者
学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。
讲解下载英特尔开发手册的文章
翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么,欢迎你的加入。
另外,我不仅仅是打算翻译这一种手册,以后,可能还需要去翻译许多的英文技术文档。
本节翻译
【原文】2.4. MEMORY-MANAGEMENT REGISTERS
The processor provides four memory-management registers (GDTR, LDTR, IDTR, and TR) that specify the locations of the data structures which control segmented memory Management (see Figure 2-4). Special instructions are provided for loading and storing these registers.
【翻译】2.4 内存管理寄存器
处理器提供了4个内存管理寄存器(GDTR、LDTR、IDTR和TR),分别指定了控制分段内存管理的数据结构的位置(见图2-4)。为加载和存储这些寄存器提供了特殊的指令。
【原文】2.4.1. Global Descriptor Table Register (GDTR)
The GDTR register holds the 32-bit base address and 16-bit table limit for the GDT. The base address specifies the linear address of byte 0 of the GDT; the table limit specifies the number of bytes in the table. The LGDT and SGDT instructions load and store the GDTR register, respectively. On power up or reset of the processor, the base address is set to the default value of 0 and the limit is set to FFFFH. A new base address must be loaded into the GDTR as part of the processor initialization process for protected-mode operation. See Section 3.5.1., “Segment Descriptor Tables”, for more information on the base address and limit fields.
【翻译】2.4.1. 全局描述符表寄存器(GDTR)
GDTR寄存器保存了GDT的32位基址和16位表限制。基地址指定了GDT的第0字节的线性地址;表限制指定了表中的字节数。LGDT和SGDT指令分别加载和存储GDTR寄存器。处理器上电或复位时,基址设置为默认值0,界限值设置为FFFFH。在保护模式操作的处理器初始化过程中,必须向GDTR加载一个新的基地址。参见3.5.1节。,“段描述符表”,获取更多关于基地址和界限值字段的信息。
【讲评】,这里的表述有点问题。基地址字段,它的确是保存着GDT的32位线性基址。而界限值,也就是limit字段,这个呢,它所代表的,并不是说GDT所占据的字节数。界限值它表示的是GDT的最后一个字节的地址值。
假定一个GDT表,它的线性基址为0x100000,也就是1M的位置。然后呢,这个GDT一共是包含了4个条目。每一个条目占据着8个字节,四个条目,那就是32个字节。32个字节,以1M作为基地址的话,0是首地址的偏移,而31,是GDT所占据的最后一个内存地址的字节偏移。那么,在这里,界限值,也就是limit的值,是31,而不是32。
从这里来看,有时候,英特尔手册,给出的概念,也不咋地。
想要学习这种知识的话,那就是,流行的教材要去学,英特尔手册,也需要去学。哪个都需要去看。偏信哪个都不好。