section .asm extern int21h_handler extern default_int_handler global int21h global default_handler global idt_load global enable_interrupts global disable_interrupts enable_interrupts: sti ret disable_interrupts: cli ret idt_load: push ebp mov ebp, esp mov ebx, [ebp + 8] lidt [ebx] pop ebp ret int21h: cli pushad ; Push all general-purpose registers to the stack call int21h_handler popad sti iret default_handler: cli pushad ; Push all general-purpose registers to the stack call default_int_handler popad sti iret