Hallo zusammen,
als Anfänger in der ASM Programmierung hänge ich an einem Problem fest.
Ich habe einen Atmega 8 als µC und ein LCD als Ausgabegerät.
Das auslesen von Daten aus einer .db Tabelle steht hier im Vordergrund.
Mit:
ldi ZL, LOW(daten*2) ; Adresse des Strings in den
ldi ZH, HIGH(daten*2) ; Z-Pointer laden
rcall lcd_daten ; Springe zum Unterprogramm rcall
lcd_daten:
push temp1
push ZH
push ZL
lcd_daten1:
lpm temp1, Z+
cpi temp1, 0
breq lcd_daten2
rcall lcd_data
rjmp lcd_daten1
lcd_daten2:
pop ZL
pop ZH
pop temp1
ret
daten:
.db "erster ",0
.db "zweiter",0
.db "dritter",0
.db "vierter",0
kann ich die Daten nach jedem Aufruf der Reihe nach auslesen.
In einem register (r17) gebe ich einen Wert vor.
Wie stelle ich es an, dass das r17 die Reihenfolge der Ausgabe vorgibt?
zB den Datensatz "dritter" als erstes auslesen (r17,2),
dann "erster" als zweites (r17, 0), "vierter" als drittes (r17,3)
und zweiter" (r17,1)als viertes?
den Befehl: "lpm temp1, Z+ r17" gibts ja nicht.
Mit dem Tutorial komme ich da wirklich nicht weiter.
Kann mir hier jemand einen Tipp geben?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.