Forum: Mikrocontroller und Digitale Elektronik Newbie: Frage zum Stack


von Sebastian Schildt (Gast)


Lesenswert?

Guten Abend!

Ich schon wieder. Ich habe eine Frage zu Assembler, bzw. zu dem Konzept 
des Stacks.
Ich finde Assembler derzeit etwas verwirrend, da ich eigentlich eher 
sowas wie ein Java "Experte" bin. C++ kann ich auch aber eigentlich kein 
Plain C => sprich ich bin nur mit'm OO Paradigma  vorbelastet.

Zurück zum Stack
So wie ich das bis jetzt verstehe, ist das ja ein LIFO Puffer dessen 
Startpunkt ich am Anfang eines AVR Programmes auf das Ende des RAM setze 
und den jeder benutzen kann (da werden doch die Rücksprungadressen 
hingepackt wenn ich sowas wie rcall-ret mache?).
Also kann der Satck wachsen nach UNTEN. Ich selber benutze das RAM aber 
doch evtl. auch, also z.b 0x0 nach OBEN. Da KÖNNTE man doch auf die Idee 
kommen, dass diese Bereiche mal zusammenkrachen könnten, oder nicht? 
Wenn ja: Kann man sich dagegen schützen, bzw kann man das merken? Was 
passiert denn beim "Crash" überhaupt? haben der Stack bzw. normale SRAM 
Zugriffe Vorrang, oder schreibt jeder der gerade dran ist, wie er will? 
Amok laufen wird ein Programm dann vermutlich sowieso.

MfG

Sebastian

von crazy horse (Gast)


Lesenswert?

gibt keinerlei automatische Speicherschutzmechanismen, das betrifft 
sowohl den normalen Programmbetrieb als auch Abstürze, die im Fehlerfall 
andere Speicherbereiche überschreiben können. Da hilft nur ordentliche 
Programmierung, der Programmierer ist dafür verantwortlich, daß sich 
Speicherbereiche nicht unzulässig überlappen.

von Rudi (Gast)


Lesenswert?

Hallo Sebastian!

Für Dich könnte vielleicht volgender Link interessant sein: 
http://www.mikrocontroller.net/attachment.php/677/Der-Stack-1.pdf

von Rudi (Gast)


Lesenswert?

Hallo Sebastian!

Für Dich könnte vielleicht folgender Link interessant sein: 
http://www.mikrocontroller.net/attachment.php/677/Der-Stack-1.pdf

von Sebastian Schildt (Gast)


Lesenswert?

Danke für die Antworten. Alles was ich wissen muss/will ;-) !

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.