[bits 32] global isr128 extern isr_handler extern _push_regs extern _pop_regs isr128: cli call _push_regs push ds push es push fs push gs mov ax, 0x10 mov ds, ax mov es, ax mov fs, ax mov gs, ax ; Pass register state to C handler push esp call isr_handler add esp, 4 pop gs pop fs pop es pop ds call _pop_regs sti iret