Forum: Mikrocontroller und Digitale Elektronik [FRAGE] Stack-Tutorial


von Chriss (Gast)


Lesenswert?

Huhu...,
ich bin super zufrieden mit den Tutorials, aber eine kleine frage habe
ich. In diesem Tutorial
(http://www.mikrocontroller.net/attachment.php/675/Der-Stack-2.pdf)
versuche ich den einen Schritt zu verstehen:

a)Der SPL ist mit 223 besetzt. Mit den beiden PUSH kommt der SPL runter
auf 221. Aber warum reduziert sich der SPL auf 219 wenn gerade einmal
die Funktion Addiere aufgerufen wurde? Die 2 PUSH verschlingen je 1
Byte und wieso die Funktion gleich 2?


b)Wie komme ich von dem wErt 123SRAM auf den Dezimalwert 223?
c)Gibt es noch weitere Tutorials die man sich durchlenen sollte, gerade
was AVR und ASSEMBLER angeht? Ich habe noch keinen Überlbick wann ich
mov,ldi, etc. ... verwende. (PUSHen und POPen nutze ich im Zusammenhang
mit dem Stack,dass weiss ich nun,aber den Rest...)

von Christian Zietz (Gast)


Lesenswert?

zu a) Beim Aufruf der Funktion wird - wie beschrieben - die
Rücksprungadresse auf dem Stack abgelegt. Diese Adresse ist nun mal 2
Bytes lang, denn mit einem Byte könnte man ja nur 256 Bytes Flash
adressieren.

zu b) Du meinst, wie man von der SRAM-Größe von 128 auf RAMEND = 223
kommt? Der SRAM beginnt - wie beschrieben - erst bei der Adresse 0x60 =
96 (vorher sind die Register und die IO-Register in den Adressraum
gemappt). Damit belegen 128 Bytes SRAM den Adressraum von 96 bis 223
(dezimal).

zu c) Eine komplette Beschreibung aller Befehle gibts unter
http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf

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.