这是什么意思?(大小和偏移)

时间:2013-01-06 15:45:54

标签: memory interrupt i386 gdt

装载/存放

使用LIDT汇编指令加载IDT。它期望IDT描述结构的位置:

enter image description here

偏移量是表本身的虚拟地址。大小是表的大小减1.此结构可以使用SIDT指令再次存储到内存中。

它在http://wiki.osdev.org/Interrupt_Descriptor_Table

1 个答案:

答案 0 :(得分:0)

IDT描述符是六字节宽的结构,包含对加载IDT条目和中断检查很重要的信息。

假设您已在中断0x40上映射PIC中断,并且IDT包含0x3F个条目(其大小为0x1F8)。每个中断条目都有8个字节,所以当IF(中断标志)置位且IMR(中断屏蔽寄存器,过滤中断的东西)在第一次中断时没有屏蔽时,PIC会发出信号表明它要触发打断。处理器问:“好的,它的数量是多少?”,PIC回答“0x40”。处理器将计算中断条目的偏移量(从表的开始)并将其与IDT描述符结构的第一个字进行比较。如果它大于IDT描述符中的值,则抛出异常(我认为它是#GP)。

IDT描述符结构中的偏移是指向IDT开始的4字节地址(非物理,分页)。添加从中断号计算的偏移导致处理器到IDT条目的地址。