Assembler befehl LD Rd, Z

OP #1963605
Lesenswert?
• ▲
▼
Hallo,

ich versuche im AVR Studio aus dem DSEG Bytes einzulesen.
Im Assemblercode:
.DSEG
.ORG  0X0060
symbols: .DB  0x0005, 0x0007, 0x0009, 0x000A

Sieht im Listingfile dann so aus:
.DSEG
.ORG  0X0060
000060 05
000061 07
000062 09
000063 0a        symbols: .DB  0x0005, 0x0007, 0x0009, 0x000A

jetzt versuche ich diese 4 byte zu lesen
ldi  r30, LOW(symbols)
ldi  r31, HIGH(symbols)

defnext:
  LD  r0, Z+
    .....
  brne  defnext

Statt der erwarteten bytes steht in R0 jedesmal 0xFF

Vielleicht habe ich eine Blockade oder aber den LD Befehl nicht richtig 
verstanden. Kann mir einer auf die Sprünge helfen?

Gruß
Peter
Gast #1963625
Lesenswert?
• ▲
▼
Hi

>.DSEG
>.ORG  0X0060
>symbols: .DB  0x0005, 0x0007, 0x0009, 0x000A

Das funktioniert nicht im Ram. Entweder du lädst die Werte beim 
Programmstart an die Stelle:

         .dseg

symbols: .byte 4

         .cseg

         ....

         ldi ZL,Low(symbols)
         ldi ZH,High(symbols)

         ldi r16,$05
         st Z+,r16
         ldi r16,$07
         st Z+,r16
         ldi r16,$09
         st Z+,r16
         ldi r16,$0A
         st Z+,r16


oder du machst das ganze im Flash:

         ....
         ldi ZL,Low(symbols<<1)
         ldi ZH,High(symbols<<1)
         lpm r16,Z
         ....


        .DB $05,$07,$09,$0A


MfG Spess

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.