Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu .dw und .db
Quagmire
19.10.2006, 21:36
Hallo,
ich hab mal eine wie ich denke sehr grundlegende Frage, ich habe in letzter Zeit mit viel interesse ASM-Code gelesen, und bin schon um einiges weiter ... =D>
Bei manchen Programmen kommen abschnitte mit
.dw
und
.db
vor, leider sagt mir das noch nicht so viel.
Ich weiss nur, dass words und bytes damit gesetzt werden können.
Ich dachte für euch Profis ist das doch ein klacks mir das zu erklären.
Was kann ich damit genau anfangen, und wie kann ich es verwenden ?
Könnte mir freundlicherweise jemand kommentierte Codebeispiele posten ? Ich bin für jede Erklärung sehr dankbar, da ich das früher oder später für das Studium lernen muss...
Danke
Quagmire
Hallo,
Zieh Dir das hier (http://www.avr-asm-tutorial.net/avr_de/beginner/index.html) mal rein.
Gruß Sebastian
Quagmire
19.10.2006, 22:00
Danke sebastian, das Beispiel unter dem link .db und .dw ist mir zu dürftig. Es hat dort leider kein konkretes Beispiel. Aber trotzdem danke.
Eine frage wäre, wenn ich mit .db ein byte irgendwohinschreibe (stimmt das soweit?) wie kann ich es dann lesen ?
Bzw. wo wird es hingeschrieben ?
Naja,
ich dachte eigentlich, es ist ziemlich gut beschrieben auf dieser Seite :-s
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
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
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"
lpm
Jetzt hast Du den Inhalt worauf Z-Zeiger zeigt in Register R0 geladen.
Damit machst Du was Du auch immer lustig bist
mov R16,R0
Du kannst den Zeiger inkrementieren
adiw ZL,1
jetzt zeigt er auf 'A'
oder verringern
sbiw ZL,1
Jetzt zeigt er wieder auf 'H'
Man kann auch ein Paar Bytes in einem springen
adiw ZL,5
Jetzt klarer ?
Gruß Sebastian
Quagmire
20.10.2006, 16:01
DANKE, jetzt ist es klar wie Kloßbrühe !
Ich werd mich damit mal spielen ...
Eine Frage noch, wenn ich keine Labels verwende, kann ich dann .dw und .db trotzdem sinnvoll verwenden ?
Gruß
Quagmire
Eine Frage noch, wenn ich keine Labels verwende, kann ich dann .dw und .db trotzdem sinnvoll verwenden ?
Sicher doch, wenn Du Dir genau ausrechnest an welcher Adresse Dein .db .dw
steht :wink:
Aber ich weiß nicht was gegen Labels spricht die sind dazu da um uns das Leben einfacher zu machen.
Gruß Sebastian
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.