Hm, wollt mir grad die Doku zum Mega 32 runterladen, aber atmel.com scheint für mich nicht erreichbar zu sein. Nur so ein Verdacht ins blaue hinein: Hast du kontrolliert, ob $0007 wirklich der Interrupt einsprungpunkt ist? Mir scheint, das das daran liegt. Ich bin mir jetzt auch nicht ganz sicher, aber vermutlich legt der Compiler das Programm dann ab $0008 rein. Dadruch kann es eben zu diesen lustigen effekten kommen.
Mein Vorschlag: Setz einfach mal alle Interrupteinsprungpunkte mit reti.
Dann siehst du besser, wo er landet. Keine Ahnung wieviele Interrupt Quellen es beim Mega 32 gibt.

.cseg
.org $0000
rjmp main
reti ; Kommt an Adr. 1
reti ; Kommt an Adr. 2
reti ; Kommt an Adr. 3
reti ; etc
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti ; Ich hab nur soviele gemacht, weil ich nicht weiß, was es beim mega32 alles gibt. Dadurch deckst du sicher den ganzen einsprungraum ab.
main:

Alles klar?

lg

Alex