Newbie: Frage zum Stack

Gast #20130
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
Gast #20131
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren