AVR Assembler - Inhalt zweier Register tauschen

OP #2047539
Lesenswert?

Ich bin grad dabei die AVR Assembler Programmierung zu lernen und habe 
mich nun gefragt, wie man den Inhalt zweier Register tauschen kann.

Im Instruction Set (ATtiny2313) habe ich keinen direkten Befehl 
gefunden.

Ich habe die Idee gehabt es über den Stack mit push und pop zu machen.

also z.B. so:
1
ldi r16,0xFF
2
ldi r17,0x00
3

4
push r16
5
push r17
6
pop r16
7
pop r17

Gibt es da noch andere / bessere Möglichkeiten?
#2048124
Lesenswert?

Die Idee die dahintersteckt ist auch recht easy zu verstehen:

Erstmal den Unterschied zwischen den Registern feststellen.
Den Unterschied auf das nicht beeinflusste Register anwenden.
Und nochmal andersrum. 8)
mfg mf

PS: Mein Vater hat mir neulich von der "schnellen Multiplikation mit 
1000" erzählt. Es ist bloß schieben und Addieren/Subtrahieren erlaubt.
Klar gibt es da auch mehrere Ansätze.

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