GDTR与LDTR
----段寄存器
一、访问GDT
当TI=0时表示段描述符在GDT中,如上图所示:
段描述符(64位)
①先从GDTR寄存器(48位,其中前32位base+16位长度)中获得GDT基址。
②然后再GDT中以段选择器(ES,DS等等)高13位位置索引值得到段描述符。
③段描述符符包含段的基址、限长、优先级等各种属性,这就得到了段的起始地址(基址),再以基址加上偏移地址yyyyyyyy才得到最后的线性地址。
二、访问LDT
当TI=1时表示段描述符在LDT中,如上图所示:
①先从GDTR寄存器(48位,其中前32位base+16位长度)中获得GDT基址。
②从LDTR寄存器中获取LDT所在段的位置索引(LDTR高13位)。
③以这个位置索引在GDT中得到LDT段描述符从而得到LDT段基址。
④用段选择器高13位位置索引值从LDT段中得到段描述符。
⑤段描述符符包含段的基址、限长、优先级等各种属性,这就得到了段的起始地址(基址),再以基址加上偏移地址yyyyyyyy才得到最后的线性地址。