Naja,
ich dachte eigentlich, es ist ziemlich gut beschrieben auf dieser Seite
Also ganz kurz,
db bzw dw legen werte im Flash ab.
Es gibt hier eine enge Bindung mit Zeigern.
Am besten setzt man zuerst ein Label, und dann definiert man seine Werte
Code:
text:
.db 'H','A','L','L','O',0
Ich hab hier einfach einen String genommen.
Nach dem Assemblieren werden die Bytes im Flash liegen...
Zugriff geht ganz einfach,
man braucht den Z Zeiger und die Funktion lpm
Code:
ldi ZH,HIGH(2*text)
ldi ZL,LOW(2*text)
Jetzt "zeigt" der Z-Zeiger auch das Label "text" bzw. das erste Element von (Hier der Buchstabe H)
Als nächstes kommt der Befehl "lpm"
Jetzt hast Du den Inhalt worauf Z-Zeiger zeigt in Register R0 geladen.
Damit machst Du was Du auch immer lustig bist
Du kannst den Zeiger inkrementieren
jetzt zeigt er auf 'A'
oder verringern
Jetzt zeigt er wieder auf 'H'
Man kann auch ein Paar Bytes in einem springen
Jetzt klarer ?
Gruß Sebastian
Lesezeichen