GDTR、LDTR、IDTR、TR寄存器的位宽分别是多少?
x86架构下GDTR、LDTR、IDTR、TR寄存器位宽说明
以下内容分两种常见工作模式分别说明:
32位IA-32保护模式
- GDTR:总宽度48位,由两部分组成:32位线性基址 + 16位GDT表限长
- IDTR:总宽度48位,结构同GDTR:32位线性基址 + 16位IDT表限长
- LDTR:总宽度16位可见段选择符 + 隐藏的48位描述符缓存(包含32位基址、20位限长、属性位),程序可直接操作的可见部分为16位
- TR(任务寄存器):总宽度16位可见段选择符 + 隐藏的48位描述符缓存(包含32位TSS基址、20位限长、属性位),程序可直接操作的可见部分为16位
64位x86-64长模式
- GDTR:总宽度80位,由两部分组成:64位线性基址 + 16位GDT表限长,你提到的64位是指该寄存器存储基址的部分
- IDTR:总宽度80位,结构同GDTR:64位线性基址 + 16位IDT表限长
- LDTR:总宽度16位可见段选择符 + 隐藏的64位描述符缓存(包含64位基址、32位限长、属性位),程序可直接操作的可见部分为16位
- TR(任务寄存器):总宽度16位可见段选择符 + 隐藏的64位描述符缓存(包含64位TSS基址、32位限长、属性位),程序可直接操作的可见部分为16位
注:LDTR和TR的隐藏缓存部分由处理器在加载段选择符时自动填充,对应用程序不可见,通常我们说寄存器位宽如果没有特指,可优先参考可见部分的位宽参数。
内容的提问来源于stack exchange,提问作者Marc Al
相关产品推荐
相关产品推荐

