0
加载/存储这是什么意思?(尺寸和偏移量)
IDT使用LIDT汇编指令加载。它需要一个IDT描述结构的位置:
偏移是表本身的虚拟地址。大小是表格的大小减去1.该结构可以使用SIDT指令再次存储到存储器中。
它在http://wiki.osdev.org/Interrupt_Descriptor_Table
加载/存储这是什么意思?(尺寸和偏移量)
IDT使用LIDT汇编指令加载。它需要一个IDT描述结构的位置:
偏移是表本身的虚拟地址。大小是表格的大小减去1.该结构可以使用SIDT指令再次存储到存储器中。
它在http://wiki.osdev.org/Interrupt_Descriptor_Table
IDT描述为六字节宽的结构,其中包含了装载IDT入口和中断检查的重要信息。假设您在中断0x40
上映射了PIC中断,并且您的IDT包含0x3F
条目(其大小为0x1F8
)。每个中断入口都有8个字节,所以当IF(中断标志)置1,IMR(中断屏蔽寄存器,过滤器中断)没有屏蔽它的第一个中断时,PIC会发出信号表明它想要触发打断。处理器询问:“好的,它的号码是什么?”,PIC回答“0x40”。处理器将计算中断入口的偏移量(从表的起始处)并将其与IDT描述符结构的第一个字进行比较。如果它大于IDT描述符中的值,则抛出异常(我认为它是#GP)。
IDT描述符结构中的偏移量是指向IDT开始的4字节地址(非物理页面)。添加从中断号码计算出的偏移量会导致处理器到达IDT条目的地址。