hast du eventuell vergessen irgendwelche register zu sichern ? sodass sie nach dem interrupt falsche werte tragen ? zur not kurz vor dem branch das interruptenable flag löschen und kurz danach wieder setzen ...