Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Frage zum GOSUB-Stack Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Christian - 12.02.2024 18:07)
 Als Antwort auf Re: Frage zum GOSUB-Stack von Dietmar - 12.02.2024 16:58
Christian nutzt:  Open-Macro, Open-Maxi
Jetzt habe ich es begriffen!

Alles läuft super!

Danke!

> Hallo Christian!
>
> > Bin ich auf der sicheren Seite wenn ich nur 32 Unterprogramme in meinem Programm habe?
>
> Das läßt sich erst zur Laufzeit sicher sagen. Fehler zur Laufzeit können von den OM-Mikrocontrollern detektiert werden. Siehe RunOnErr.
>
> > Oder wie ist das mit den Verschachtelungen gemeint?
>
> Jedesmal, wenn der Controller bei der Befehlsausführung auf ein "GOSUB label" trifft, wird das "label" aufgerufen und die Rücksprungadresse auf dem sogenannten GOSUB-Stack abgelegt.
> Das ist also eine von 32 Verschachtelungen.
> Wenn der Controller auf ein RETURN trifft, wird die letzte Rücksprungadresse vom GOSUB-Stack geholt und hinter dem letzten GOSUB weitergemacht.
> Das bedeutet also, auf dem GOSUB-Stack wird wieder ein Eintrag frei. Die Verschachtelungstiefe nimmt also um eins ab.
>
> Es gibt versteckte GOSUBs. Beispielsweise kann durch "variable=label" eine Anwenderfunktion namens "label" aufgerufen werden. Auch dafür wird intern ein GOSUB verwendet.
>
> Wie ein Stack genau funktioniert, wird in der Bedienungsanleitung zur Open-Macro und Open-Maxi beim Befehl PUSH erklärt.
>
> Freundliche Grüße
>
> Dietmar

 Antwort schreiben

Bisherige Antworten: