Forum: Mikrocontroller und Digitale Elektronik Register verwenden


von Heiko (Gast)


Lesenswert?

Guten Tag

Ich arbeite mich seit ein paar Wochen in die Materie AVR ein da
blutiger Anfänger.
Mir ist aufgefallen das bei jedem Tutorial mit Register r16 begonnen
wird und dann rauf gezählt wird d.h. r16, r17, r18 usw.!
Warum werden die Register r0 bis r15 nicht verwendet?
Gibt es so ne Art Leitfaden wann man welches Register verwendet? Im
Netz habe ich leider nichts gefunden!

von crazy horse (Gast)


Lesenswert?

das kommt daher, dass man erst ab r16 mit Konstanten direkt arbeiten
kann. Das betrifft die Befehle ldi,subi,andi,ori u.ä.. Ein Befehl
ldi r2, 45 z.B. ist also nicht möglich.
Weitere Besonderheiten betreffen das r0 (wird automatisch als
Zieladresse benutzt bei LPM) und die Indexeregister X,Y,Z.

von Chris (Gast)


Lesenswert?

Guck mal bei Atmel auf die Homepage, da gibt es das Instruction Set
Document. Für jeden Befehl wird angegeben mit welchen registern du es
benutzen kannst.

http://www.atmel.com/dyn/resources/prod_documents/DOC0856.PDF

von Gerd (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Grob gesagt, alle Befehle mit einem "I" am Ende (LDI, ORI, SUBI usw.)
gehen nur mit R16..R31.
Dabei ist zu beachten, daß SBR  CBR verkappte ORI  ANDI Befehle
sind.


Peter

von Gerd (Gast)


Lesenswert?

Sorry, Link muss richtig heißen
http://www.avr-asm-tutorial.net/avr_de/beginner/register.html#Wahl

MfG
Gerd

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.