-         

Ergebnis 1 bis 6 von 6

Thema: Frage zu .dw und .db

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    11.10.2006
    Beiträge
    10

    Frage zu .dw und .db

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    Hallo,
    Zieh Dir das hier mal rein.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    11.10.2006
    Beiträge
    10
    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 ?

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    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"

    Code:
    lpm
    Jetzt hast Du den Inhalt worauf Z-Zeiger zeigt in Register R0 geladen.
    Damit machst Du was Du auch immer lustig bist
    Code:
    mov R16,R0
    Du kannst den Zeiger inkrementieren
    Code:
    adiw ZL,1
    jetzt zeigt er auf 'A'
    oder verringern
    Code:
    sbiw ZL,1
    Jetzt zeigt er wieder auf 'H'
    Man kann auch ein Paar Bytes in einem springen
    Code:
    adiw ZL,5
    Jetzt klarer ?

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    11.10.2006
    Beiträge
    10
    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

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    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
    Aber ich weiß nicht was gegen Labels spricht die sind dazu da um uns das Leben einfacher zu machen.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •