Xin hat geschrieben:Du rufst mit JMP nichts auf, sondern Du änderst das IP-Register.
Der JMP Befehl kommt - afaik - gar nicht im im CPU Kern an, sondern die Ladeeinheit lädt bereits automatisch bei _isr_handler weiter.
Das wusste ich nicht.
Ist es aber im Endeffekt nich doch weniger zu tun und damit schneller? (Wenn auch nur minimal)
Ich werde es aber trotzdem so lassen, das erhöht, denke ich, die Sicherheit. Wird eine Interruptroutine nun beschädigt, dann funktionieren die anderen trotzdem einwanfrei.
Xin hat geschrieben:Oder meinst Du JSR?
Wie Wo Was?
Du meinst die Assembleranweisung JSR?
Nein, es ist ein "jmp"
Xin hat geschrieben:Wenn Du Rechenzeit sparen willst, solltest Du überlegen, dass Du die Stack-Operationen sparen könntest, z.B. durch Registerübergaben statt den Stack zu nutzen.
Heißt: wenn Du irgendwohin springst, erwartest Du die Eingabedaten in ax, bx. Das ganze hat natürlich nur Sinn, wenn die Routine danach zum Rechnen nicht auf den Stack auslagern muss.
Ich verstehe nicht ganz, was du meinst.
Die Register pushe ich auf den Stack, um sie zu sichern. Sie müssen danach ja wieder genau so hergestellt werden, wie sie vorher waren. Und zwar möglichst alle Register.
Außerdem ermöglicht das mir einen Task Wechsel (ich wechsle in der Interruptroutine einfach den Stack, Folge: Es werden die Werte vom neuen Stack geladen)
Oder wie genau meinst du das?