Interrupt Descriptor Table: Difference between revisions

[unchecked revision][unchecked revision]
Content deleted Content added
m Interrupts Descriptor Table moved to Interrupt Descriptor Table: Removing 's' from Interrupts
m →‎I386 Interrupt Gate: formatting error
Line 49:
=== I386 Interrupt Gate ===
 
The Interrupt Gate is used to specify a 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).
 
=== I386 Task Gate ===