Interrupt Descriptor Table: Difference between revisions

[unchecked revision][unchecked revision]
(→‎Loading/Storing: clarification about IDTR.base)
Line 85:
=== I386 Interrupt Gate ===
 
The Interrupt Gate is used to specify aan [[Interrupt Service Routines|interrupt service routine]]. When you do <tt>[[INT]] 50</tt> in assembly, running in protected mode, the CPU looks up the 50th entry (located at 50 * 8) in the IDT. Then the Interrupt Gates selector and offset value is loaded. The selector and offset is used to call the interrupt service routine. When the <tt>[[IRET]]</tt> instruction is read, it returns. If running in 32 bit mode and the specified selector is a 16 bit selector, then the CPU will go in 16 bit protected mode after calling the interrupt service routine. To return you need to do <tt>O32 IRET</tt>, else the CPU doesn't know that it should do a 32 bit return (reading 32 bit offset of the [[stack]] instead of 16 bit).
 
{| {{wikitable}}
3

edits