Zitat Zitat von MagicWSmoke Beitrag anzeigen
Ansonsten geht's (wie im Listing) auf den Resetvektor.
Hab nichts anderes geschrieben.

Zitat Zitat von ePyx Beitrag anzeigen
Ist die nicht vorhanden läuft das Programm ab der Sprungadresse des IRQ weiter und geht ohne reti ( das macht unter anderem der ISR-Block) nicht zurück sondern läuft weiter. Etwas weiter oben im Speicher liegt deine Init und wird ausgeführt.

Durch das Einfügen einer rjmp Marke, wird der unter der Marke Code für die ISR abgearbeitet. Zum Schluss wird mit reti doch, zurück an die Stelle PCs die vor dem IRQ bearbeitet wurde, gesprungen. Letztendlich muss der C-Compiler doch Ähnliches erzeugen, denn es muss bzgl. der Funktionalität das Gleiche herauskommen.

Sprich, für mich definiert der ISR-Block den Interrupt-Einsprung und folglich auch den Rücksprung.