Forum: Mikrocontroller und Digitale Elektronik daten im speicher kopieren


von Malte P. (malte-cux)


Lesenswert?

Moin,

ich bin auf der Suche nach einem Befehl, um den Wert von einer 
Speicheradresse an eine andere Speicheradresse zu kopieren.
Gibt es dafür überhaupt einen Befehl oder muss man das über 
"Zwischen"register machen?

ldi    ZL, low(E_Temp_I)
ldi    ZH, high(E_Temp_I)
ldi    XL, low(Temp)
ldi    XH, high(Temp)
st    Z+, X+
st    Z+, X+
st    Z+, X+

So klappte es leider nicht, aber vllt wird daran deutlicher was ich vor 
habe.
Also ich will die Werte von Temp an der Stelle E_Temp_I speichern.

Freue mich über Vorschläge.

Viele Grüße
Malte

von Huch (Gast)


Lesenswert?

Nach den Befehlen die Du da schreibst, gehe ich davon aus, das Du von 
einem AVR-Prozessor redest. Das ist für solche Fragen von grosser 
Bedeutung.

Leider hat der AVR keinen Befehl im direkt Speicher nach 
Speicher-Transfers über Zeiger durchzuführen. (ATXMega geht das, denke 
ich mit DMA aber nicht mit Befehlen).

Solltest Du mal wieder vor einer ähnlichen Frage stehen, dann schaue Dir 
die Befehlsbeschreibungen im Datenblatt an. Da steht genau welche 
Befehle es gibt.

von Helfender (Gast)


Lesenswert?

probiers mal so;
ldi    ZL, low(E_Temp_I)
ldi    ZH, high(E_Temp_I)
ldi    XL, low(Temp)
ldi    XH, high(Temp)

ld r20,x+ ;lade von Temp
st z+,r20 ;speichere in Temp
ld r20,x+
st z+,r20
ld r20,x+
st z+,r20

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.