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 Dietmar, Homepage - 12.02.2024 16:58)
 Als Antwort auf Frage zum GOSUB-Stack von Christian - 12.02.2024 16:27
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini Station
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

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Re: Frage zum GOSUB-Stack (von Christian - 12.02.2024 18:07)