64位系统下的IDTR与IDT表项

来源:互联网 发布:vb常用代码 编辑:程序博客网 时间:2024/05/17 01:11

已有许多资料介绍32位系统下的IDTR内容与IDT表项格式,本文专门对64位(IA-32e模式)下IDTR的内容和IDT表项格式进行介绍。

作为对比,首先回顾32位下的IDTR与IDT表项:

32位下,使用SIDT指令得到的IDTR内容为:

NameBitDescriptionLimit0..15以字节为单位的IDT长度Base16..47IDT起始32位地址IDT的表项格式为:

NameBitDescriptionLowOffset0-15服务函数地址低16位selector16-31段选择子zero31-39填充0x00attr40-47属性HighOffset48-63服务函数地址高16位
64位下,使用SIDT指令得到的IDTR内容为:

NameBitDescriptionLimit2以字节为单位的IDT长度Offset8IDT起始64位地址IDT的表项格式为:

NameBitDescriptionLowOffset0-15服务函数地址低16位selector16-31段选择子zero31-39填充0x00attr40-47属性MiddleOffset48-63服务函数地址中16位HighOffset64-95服务函数地址高32位zero96-127填充0x00
可以看出,64位下IDT的表项是基于32位进行的扩展,低64位没有变化,高64位的低32位用来扩展地址到64位,高64位的高32位填充0x00。

IDT表项的属性部分的内容没有变化,许多讲32位IDT格式的资料已经介绍过,可以搜到很多。



0 0