IDT = Interrupt Descriptor Table 中断描述表
IDT是一个有256个入口的线形表,每个IDT的入口是个8字节的描述符,所以整个IDT表的大小为256*8=2048 bytes,每个中断向量关联了一个中断处理过程。所谓的中断向量就是把每个中断或者异常用一个0-255的数字识别。Intel称这个数字为向量(vector).对于中断描述表,操作系统使用IDTR寄存器来记录idt位置和大小。
IDTR寄存器是48位寄存器,用于保存idt信息。其中低16位代表IDT的大小,大小为7FFH,高32位代表IDT的基地址。在我的机器上,基地址是8003F400H. 我们可以利用指令sigt读出IDTR寄存器中的信息,从而找到IDT在内存中的位置。
1.JPG下载此附件需要消耗2Kx,下载中会自动扣除。
IDT有三种不同的描述符或者说是入口,分别是:
1。任务门描述符
2。中断门描述符
3。陷阱门描述符
也就是说,在保护模式下,80386只有通过中断门、陷阱门或任务门才能转移到对应的中断或异常处理程序。
电子街更多推荐