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