Du musst bei IRQs noch ein EOI (End of Interrupt) an den Pic senden, bei IRQ 0 wäre das 0x20 an den Port 0x20, wenn ich mich richtig errinnere. Ich habe auch immer iret benutzt.
Iret popt CS, EFLAGS, und die Rücksprungaddresse vom Stack und kehrt dann zur Rücksprungaddresse zurück.