Probleme mit Stack

Gast #63056
Habe ein Prog geschrieben, es ist allerdings noch nich fertig dennoch
habe ich schon die ersten Probleme.

Der Stack will nicht so wie ich will, nach aufrufen des Unterprogramms
soll er mit ret zurück hüpfen, tut er, aber nur insofern das er zum
Programm anfang und nicht zum Aufruf des Unterprogramms hüpft, hat wer
ne idee ?

Danke im vorraus
Angehängte Dateien:
Gast
tja, was soll man dazu sagen?
push, push, push... und dann soll sich der kleine ret die richtige
Adresse selbst rausfischen? Oder wie denkst du dir das? Push/pop und
call/ret benutzen den gleichen stack und den gleichen SP.
Gast
bin mir net sicher, aber ich glaub du hast das problem, dass der
controller net mehr weiss wo er "hinhüpfen" soll, denn in der
Stack-schleife schiebst du den eintrag wo die rücksprungadresse steht
immer weiter zurück.
ich weiss net ob du mir folgen kannst, aber ich mein dass es so ist,
das im nach nem "rcall" die rücksprungadresse als oberstes in den
stack gespeichert wird. wenn du jetzt via "push" neue daten
drüberschreibst, verliert der controller die orientierung.
wieso speicherst du die daten überhaupt im stack, das ist doch
eigentlich gar net nötig, oder?
hoffe ich hab net für allzuviel verwirrung gesorgt.
gruß
martin
Gast
hm ok das Problem war mit einem einfachen rjmp gelöst ! Das ret scheint
tatsächlich meinen Stack zu mißbrauchen ;-) Zumindest wenn es etwas
anspruchsvoller wird.

Gibts denn ne möglichkeit dem die richtige stack adrese wieder
einzutrichtern ? ohne rjmp zu fuschen ?
Gast
du kannst die daten einfach in den flash schreiben, unn dann schön der
reihe nach einlesen, ich hab selbst so nen lauflicht geschrieben, ca.
100 Zustände im Flash, ist kein prob, aber auf dem stack wirds eng!

was sollte das mit cbi PORT,3 ?
Gast
Naja habe es jetzt so gemacht

sub1:
sbi PORTB, 0
sbi PORTB, 1
sbi PORTB, 2
sbi PORTB, 3
sbi PORTB, 4
sbi PORTB, 5
sbi PORTB, 6
sbi PORTB, 7
ret

da sdi eidnger anspringen.
Fange gerade erst mit avrs an , deshalb wunder dich nicht wenn meine
Lösungen nicht ganz so elitär sind ! :-) bin trotzdem glücklich wenns
klappt !

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.