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條目的地址。