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)