1[bits 32]
2
3global load_idt
4load_idt:
5 mov eax, [esp + 4]
6 lidt [eax]
7 ret
8
9global enable_interrupts
10enable_interrupts:
11 sti
12 ret
13
14; ISR for Keyboard (IRQ 1 mapped to 0x21)
15global keyboard_handler_stub
16extern keyboard_handler
17
18keyboard_handler_stub:
19 pushad ; Save all registers
20 call keyboard_handler
21 popad ; Restore all registers
22 iretd ; Interrupt return (32-bit)
23
24; Generic handler for unhandled interrupts/exceptions
25global exception_handler_stub
26extern exception_handler
27
28exception_handler_stub:
29 pushad
30 call exception_handler
31 popad
32 iretd