Forum: Mikrocontroller und Digitale Elektronik AVR Assembler - Zwei Register tauschen


von Lars (Gast)


Lesenswert?

Ich möchte zwei Register untereinander tauschen. Hab mir das so gedacht:

push r16
mov r16, r17
pop r17

Weiß jemand noch etwas eleganteres? Einen direkten "xch" Befehl wie bei 
den C51ern gibt es ja scheinbar nicht, oder?

von AVRFan (Gast)


Lesenswert?

eor  r16, r17
eor  r17, r16
eor  r16, r17

:-)

von Lars (Gast)


Lesenswert?

Nicht schlecht!
...auf was für Ideen manche kommen. :-)

von Spess53 (Gast)


Lesenswert?

Stand vor Jahren mal im Elektor.Ist aber auch nicht kürzer.

MfG Spess

von Rolf Magnus (Gast)


Lesenswert?

Ist aber schneller, da push und pop jeweils zwei Takte brauchen. Der 
Trick mit dem eor ist übrigens uralt.
Ich würde aber einfach temporär den Wert in einem anderen Register 
zwischenspeichern. Das ist genauso schnell wie die eor-Geschichte, und 
auf dem AVR hat man ja Register im Überfluss.

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.