Pointer Verstaendniss in avr assembler

Gast #170975
Lesenswert?
• ▲
▼
Ich habe volgendes Problem mit den Z Pointer in avr assembler, in
Variante 1 Funktioniert es wie ich will, in Variante 2, nicht.
Wo liegt mein Verstaendniss Problem ? Vielleicht kennt sich damit
jemand aus ? Als Assembler benutze ich avra unter linux.

Vielen Dank fuer eure Hilfe.


Version 1: ( klappt )
  ldi ZL,LOW(TEST_DATEN*2)
  ldi ZH,HIGH(TEST_DATEN*2)
  adiw ZL,3    ;  Z+= 3
  lpm      ; R0 = (Z)
  ;out PORTD,R0    ; LEDs = 1100 = OKAY
TEST_DATEN:
.db $0,$1,$2,$3,$4,$5
--------------------------------------------------
Version 2: ( klappt nicht )
  ldi ZL,LOW(TEST_DATEN*2)
  ldi ZH,HIGH(TEST_DATEN*2)
  ld temp1,Z+  ;temp1=0
  ld temp1,Z+  ;temp1=1
  ld temp1,Z+  ;temp1=2
  ld temp1,Z  ;temp1=3
  out PORTD,temp1  ; LEDs = sollten 1100 sein, ist es aber nicht.
Gast #170977
Lesenswert?
• ▲
▼
Ich hab da auch nochmal ne dumme Frage: Wenn ich z.B. $60 über einen
Pointer ansprechen möchte muß ich dann "$60" in das low byte und
"$00" ins high byte schreiben? Nur mal so zur Info, nicht dass ich
irgendwo in die Walachei schreibe ;)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren