Zitat von wkrug
Die ersten Speicherplätze im Programmteil werden tatsächlich Hardwaremässig angesteuert.
Ich hab das zu meinen Assemblerzeiten immer so gelöst, das ich die komplette Interrupttabelle für den Controller immer an den Anfang des Programms gestellt habe.
Wenn man jetzt noch für alle! möglichen Interrupts ein Label fabriziert in dem nur noch der Befehl RETI ausgeführt wird kann eigentlich nichts unvorhersehbares passieren.
Man muß auch darauf achten, das in der Vektortabelle die richtigen Sprungbefehle also JMP oder RJMP stehen, weil das von Controller zu Controller verschieden sein kann.
Das Hauptprogramm beginnt mit dieser Methode direkt nach der Interruptvektortabelle und kann somit nicht aus versehen durch einen Interrupt angesprungen werden.
Eine weitere praktizierte Methode ist, für nicht benutzte Interrups in die Tabelle einfach den Befehl RETI einzutragen, aber das gefällt mir persönlich nicht besonders.
Die nächste Möglichkeit ist nur einzelen Interruptvektoren mit einem vorangestellten .org zu versehen.
Das halt ich persönlich für etwas gefährlich, vertut man sich auch nur um eine Stelle landet der Controller im Nirwana. Möglich ist es aber.
Mehr Möglichkeiten fallen mir auf Anhieb nicht mehr ein. Praktiziert werden alle 3 Methoden.