Stack von avr

Gast #61630
Hi!

ich programmier meine avr´s mit assembler und mit dem avr studio.
wenn ich doch immer wieder etwas auf den stack schiebe und es nicht
mehr hol ist er doch irgendwann voll?? overflow?? oder wie nennt sich
das. Wie kann ich das vermeiden?
Ich mein, wie kann ich den ganzen inhalt vom stack löschen?
welchen befehl muss ich da verwenden?


bin für alle tipps dankbar
Martin
Gast
das ist wie mit den Frauen - auf Dauer funktioniert das nur, wenn man
sie ordentlich behandelt...
Der Stack wird im Normalfall nur ein einziges Mal gesetzt, und zwar am
Programmanfang. Ab da gehört zu jedem stackschreiben ein stacklesen.
Wozu sollte man was auf den stack schreiben und dann nicht wieder
abholen??  Wenn du es nicht mehr brauchst, lass das Schreiben.
Gast
im stack werden auch (insbersondere!) rücksprung adressen für den
programmablauf gesichert. daten solltest du da nur kurz pushen und
popen (als "kurzzeitgedächnis") und längerfristig gesehen daten im
ram (definierte adresse) ablegen

denn du

call xxyy
xxyy:
push zz
ret

machst wird´s nen fehler geben, weil das programm an der stellen yyzz
und nich xxyy fortgesetzt wird. guck dir das tutoriall hier nochmal an.
"das ist wie mit den Frauen"

Na na, da sind ja doch gravierende Unterschiede.

Der Stack funktioniert vollkommen logisch, man kann ihn leicht
verstehen und muß nicht erst fragen, obs ihm gerade paßt, daß man ihn
benutzen will :-)


Peter
Gast
...nur in ganz, ganz, ganz seltenen fällen ist im Stack ein fehler
festzustellen. Und meistens hat man den dann auch noch selbst
fabriziert.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.