Tabellen und Register

Gast #31684
Lesenswert?
• ▲
▼
Da gibts den Befehl "ijmp". Er benutzt R30/R31 (also das Z-Register) als 
Sprungadresse. Dieses Registerpaar vorher evtl. per Tabelle und 
"lpm"-Befehl definieren.
Beim lpm-Befehl bin ich mir allerdings nicht ganz sicher - ich progge 
nur die kleineren Atmels, aber der 8515 sollte ähnlich funktionieren.
Gast #31686
Lesenswert?
• ▲
▼
Also ich habe diese Befehle mal unter die lupe genommen.
Allerdings müßte ich dann jedes mal das Register abfragen und je nach 
dem den Z-Pointer laden.

gibt es da noch eine kürzere bzw. günstigere Variante?
Gast #31687
Lesenswert?
• ▲
▼
Welchen Wertebereich hast Du in dem Register?
Sind es fortlaufende Zahlen (also 0,1,2,3,4...) oder sind sie 
durcheinander?
Bei ersterer Möglichkeit kannst Du das Register als Zeiger auf eine 
Tabelle benutzen und mit dem Tabellenwert das Z-Register laden. Ist ein 
10-Zeiler. Es gibt nur einige Details, die ich von hier aus nicht 
checken kann.
Gast #31688
Lesenswert?
• ▲
▼
Also bei einem interrupt wird ein register fortlaufend um 1 erhöht, 
jedoch maximal bis 9.

Ok danke für den Tipp, allerdings habe ich sehr wenig Erfahrung im 
Umgang mit Z-Pointer und Tabellen.

Martin

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren