-
-
Erfahrener Benutzer
Fleißiges Mitglied
Wahrscheinlich über einen Software-Stack.
Geht ungefähr so:
Beim Unterprogramm-Aufruf wird die momentane Adresse (die der Compiler ja kennt) in einem Bereich des RAM abgelegt. Eine andere RAM-Adresse bildet den Index in diesen Bereich und wird um eins erhöht. Jetzt erfolgt der Unterprogramm-Aufruf, aber nicht per CALL sondern per GOTO.
Wenn das Unterprogramm zurückkehren soll, holt es die Adresse aus dem RAM-Bereich (nachdem der Index um 1 verringert wurde) und schreibt diese Adresse in PCL und PCH (den Programm-Zähler). Die Stack-Tiefe ist so nur durch das RAM begrenzt.
Nachteile:
- Ist natürlich langsamer. Vor allem, wenn man auch noch auf Stack-Overflow und Underflow testen will.
- Der Stack ist nicht mehr geschützt. Ein wildgewordener Programmteil kann irgendwelche Sachen in den Stack-Bereich oder den Index-Pointer schreiben und die zurückkehrenden Unterprogramme landen im Nirvana.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen