Hi, These days some interrupt related codes confused me. irq_asm.S: pushl ecx # push vector number mov SYM (current_irq) (,ecx,4),eax # eax = Users handler call *eax # invoke user ISR The user ISR is invoked without saving general registers. Is this a safe way to call a C function? Could anyone please give a brief explanation? Thanks a lot. -- Rloase Flinne