-
        

Ergebnis 1 bis 3 von 3

Thema: Indirekte Adressierung Fehler

  1. #1

    Indirekte Adressierung Fehler

    Anzeige

    Guten Tag

    ich habe mir erstmal die Hilfe durchgelesen aber irgentwie komme ich da nicht weiter.

    In der Hilfe wird der queltext geschrieben
    LDI XL, LOW(Adresse)
    LDI XH, HIGH(Adresse)
    LD GPR, X ; '''Indirekt''': lade das Byte, wo der Pointer X hinzeigt

    aber selbst bei den ldi XL LOW bekomme ich schon einen fehler beim Kompeliren.
    ich nutze den SISY für win der quellkode ist:

    L
    ende: LDI XL, LOW(Adresse)
    LDI XH, HIGH(Adresse)
    LD GPR, X
    lpm ; durch Z-Pointer adressiertes Byte
    ; in R0 laden
    out PORTB, R0 ; an PORTB ausgeben

    rjmp ende ; Endlosschleife

    Adresse:
    .db 0b10101010


    so wie ich das vestehe sollte er sich die daten in dem db in das register R0 laden und dan ausgeben.der Kompiler sagt mir das dazu:

    Kompiliere die Datei test_Indireckte_adressirung.s.
    Assembler Meldungen:
    test_Indireckte_adressirung.s:51 Fehler: ein konstanter Wert wird erwartet:
    Kontrollieren Sie bitte die Schreibweise dieser Zeile.
    Erwarte Register ab: 15
    Fehler: ungültiges Zeichen am Zeilenende.
    test_Indireckte_adressirung.s:52 Fehler: ein konstanter Wert wird erwartet:
    Kontrollieren Sie bitte die Schreibweise dieser Zeile.
    Erwarte Register ab: 15
    Fehler: ungültiges Zeichen am Zeilenende.
    test_Indireckte_adressirung.s:53 Fehler: ein konstanter Wert wird erwartet:
    Kontrollieren Sie bitte die Schreibweise dieser Zeile.
    test_Indireckte_adressirung.s:61 Fehler: unknown pseudo-op: `.db'
    Ende.


    Ich bedanke mich schonmal

    Martin

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    10.02.2005
    Ort
    eastside, L.E.
    Alter
    46
    Beiträge
    104
    Hi,

    verschiedene Dinge fallen mir auf:

    1. ist GPR irgendwo definiert? (.def GPR = R16)

    2. der LD-Befehl kann nur den SRAM auslesen, im ersten Beispiel müßten die Daten also erst in den SRAM geschrieben werden

    3. zweites Beispiel: LPM nutzt immer nur den Z-Pointer, also dann ist ZH:ZL mit der Adresse versehen.

    4. bei LPM beachten, das der Flashbereich mit 16bit organisiert ist, damit verschieben sich die Adressen. bei Dir wäre richtig: LDI ZL, LOW(Adresse * 2)

    Rajko

    PS: warum benutzt Du nicht das AVR Studio?

  3. #3
    Danke für die meldung

    So ich habe mir ein komplettpaket gekauft,und ich habe jetzt die seite gefunden die ich brauche. Mein fazit ist das ich erst mal das ding durcharbeiten werde und dan mal schauen wie weite ich komme.

    thx

    martin

Berechtigungen

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