Bibliothekselement - Methode

Der enthaltene Quelltext wird als Unterprogramm behandelt. Es erfolgt ein Aufruf des entsprechenden Labels als Unterprogrammaufruf. Der erste Parameter bzw. eine echte Wertzuweisung erfolgt im Registerblock A, also Register _HA0 bis _HA3 (je nach Wertbreite). Alle Weiteren auf dem Stack. Alle weiteren Parameter werden in der Reihenfolge der Deklaration (von links nach rechts) vom Stack geholt. Vor dem abholen der weiteren Parameter muss die Rücksprungadresse mit den fest eingebauten Assemblermakros „PopPC“ und „PushPC“ (siehe Standardbibliothek) vom und wieder auf den Stack zurückgelegt werden.

Bei einer Methode ist die Angabe des korrekten Labels notwendig. Mehr als ein Parameter (gezählt inkl. einer Ggf. definierten Zuweisung) wird vom Stack geholt:

Hinweis

Wird eine echte Wertzuweisung (keine Textersetzung) in einer Methode/Inline-Methode verwendet, verdrängt Diese den Ggf. vorhanden ersten Parameter. D.h. der erste Parameter landet dann nicht mehr im Registerblock A sondern wie alle anderen Parameter auf dem Stack. Im Registerblock A steht dann die Wertzuweisung (siehe unten).

Der grafische Parametereditor ändert eine entsprechendes Ziel (Stack/RegA) automatisch.

Methode mit Rückgabewert

Ein Rückgabewert wird im Registerblock A erwartet. Um eine Methode als Funktion mit Rückgabewert zu deklarieren, wählt man die gewünschte Möglichkeit und den Datentyp aus. Eine optionale Rückgabe ist ebenfalls möglich. Hier ignoriert der Compiler dann im Luna-Code den Rückgabewert, wenn nicht verwendet wird.

Methode mit Zuweisung

Alternativ kann eine Zuweisung konfiguriert werden. Hierbei ist zu beachten, dass dann die eigentlichen Parameter (sofern vorhanden) alle auf dem Stack abgelegt werden. Der Wert der Zuweisung wird im Registerblock A abgelegt.