`Register` 
perform  label      acon
	Unterprogramm-Aufruf
Es wird, wie bei `jump`, zu der Sprungmarke  `:label` gesprungen. 
Sobald danach aber ein Befehl `return`erreicht wird, wird zurückgesprungen, d.h. es geht mit der nächsten Zeile weiter, die auf  perform  folgt. 
Wenn label fehlt, wird der Inhalt der iV genommen. Dies macht die dynamische Setzung einer UP-Adresse möglich. 
Wenn die Sprungmarke :label nicht gefunden wird, bricht der FLEX mit einer Fehlermeldung  Label ... not found  ab. 

Das Unterprogramm muß keine zusammenhängende Zeilenfolge sein. Es kann an jeder Stelle des FLEXes beginnen, d.h. das  label  kann weiter oben oder weiter unten stehen. Es kann auch mehrere return geben: das erste, das erreicht wird, beendet das Unterprogramm. 
Achtung:
Verschachtelung ist nicht möglich: aus einem UP heraus kann kein weiteres UP aufgerufen werden. 
Sehr wohl kann aus einem UP heraus mit  exec  ein anderer FLEX gestartet werden; dann wird aber nicht zur Aufrufstelle zurückgekehrt. 

Hinweise  zur  Übergabe von Daten an ein Unterprogramm 
Wenn etwas an das Unterprogramm zu übergeben ist, kann man es entweder vorher in  #u-Variablen  oder $-Variablen schreiben oder aber schlicht in die iV,  mit einem var-Befehl direkt vor dem Aufruf. Dieser Inhalt ist dann am Beginn des UP sofort verwendbar. Auch die Inhalte aller #u und $-Variablen sind verfügbar sowie die Felder des aktuellen Satzes, d.h. eine ausdrückliche Datenübergabe ist i.d.R. gar nicht nötig, es gibt nur globale Variablen. 

Unterprogramme kann man auch in getrennten Dateien unterbringen, die man mit `include` in jeden FLEX einbindet, wo sie gebraucht werden. 

Beispiel 1: Die Berechnung des Osterdatums. Dafür kann man gauss.flx einbinden: 
var "1945" 
perf gauss 
// jetzt steht das Osterdatum als JJJJMMTT in der Variablen #u!d 
var #u!d 
mes 
end 
include gauss.flx

Beispiel 2: Die Datei  iban.flx  ist ein UP, das man auch selbständig aufrufen kann: 
X iban 
Es errechnet die IBAN aus Kontonummer und Bankleitzahl. Will man es als UP verwenden, hängt man es unten an den eigenen FLEX an mit dem Befehl
include iban.flx
und schreibt im eigenen FLEX an beliebiger Stelle:

.. Belegung der Variablen #ukO und #ubL mit Kto.Nr.und BLZ
perform iban
und schon steht die IBAN in der iV und kann verwendet werden. Der  iban.flx  ist ausführlich kommeniert und kann als Beispiel dienen für eigene Routinen ähnlicher Art.

Beispiel 3: Die Datei  ftr.inc   führt eine `Volltextsuche` in der gesamten Datenbank durch. Eingebunden ist es in  ftr.flx, aber verwendbar auch in eigenen FLEXen.

?jump=h xjump 
?:label=h xlabel 
?return=h xreturn 
?Register=h xa 
?include=h xinclude 
?exec=h xexec 
?Volltextsuche=h xfind=_xyz_