mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfänger+ Assembler=Fragen


Autor: Max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin ein Anfänger und versuche mit myAVR Assembler zu lernen.

Ich verstehe nicht warum am Anfang immer diese Befehle stehen?
Was passiert da?

ldi r16, lo8(RAMEND)
out spl, r16
ldi r16, hi8(RAMEND)
out spl, r16


Was heißt RAMEND?
Ich habe schon versucht mich da einzulesen, aber ich komme nicht 
dahinter.

Gruß
Max

Autor: Simon K. (simon) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Stackpointer (wichtig bei unter anderem bei Call's bzw. 
Funktionsaufrufen) wird auf die Letzte Stelle des Speichers gesetzt. 
Legt man nun einen Wert auf den Stack, so wird der Pointer um eins 
erniedrigt. Liest man wieder was oben vom Stack, wird er wieder erhöht.

(http://de.wikipedia.org/wiki/Stapelspeicher)

Sprich: Ohne diese Initialisierung werden deine CALL's und Interrupts 
schiefgehen.

PS: Da der Stackpointer aus 2*8Bit Registern besteht, wird die Konstante 
"RAMEND" in zwei Teile zerlegt und die Register mit diesen beiden Teilen 
geladen.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

RAMEND ist die höchste Speicherstelle im RAM . Wird normalerweise in der 
zugehörigen .inc Datei definiert.

MfG Spess

Autor: Markus ---- (mrmccrash)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Glück Auf!

RAMEND ist eine Konstante, die entweder über die Includes oder selber am 
Anfang der Datei definiert wird. Die Großschreibung hat sich dafür so 
eingebürgert.

Schau mal nach "#define"

Edit: spess53 war schneller...

_.-=: MFG :=-._

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.