idt_entry: dw 0 ;offset 15:0 dw KERNEL_CODE ;base 15:0 db 0 ;0 db 0x8E ;[P][DPL][0][TYPE] dw 0 ;offset 31:16 %macro isr_label 1 isr_%1: mov eax, %1 jmp isr_main %endmacro isr_label 0 isr_label 1 isr_label 2 isr_label 3 isr_label 4 isr_label 5 isr_label 6 isr_label 7 isr_label 8 isr_label 9 isr_label 10 isr_label 11 isr_label 12 isr_label 13 isr_label 14 isr_label 15 isr_label 16 isr_label 17 isr_label 18 isr_label 19 isr_label 20 isr_label 21 isr_label 22 isr_label 23 isr_label 24 isr_label 25 isr_label 26 isr_label 27 isr_label 28 isr_label 29 isr_label 30 isr_label 31 isr_label 32 isr_label 33 isr_label 34 isr_label 35 isr_label 36 isr_label 37 isr_label 38 isr_label 39 isr_label 40 isr_label 41 isr_label 42 isr_label 43 isr_label 44 isr_label 45 isr_label 46 isr_label 47 isr_label 48 isr_label 49 isr_main: pusha push ds push es push eax call _isr pop eax pop es pop ds popa iret