% sum-pushj-while.mms LOC #100 % % Dieses Unterprogramm berechnet die Summe der Zahlen 1..sum_n % sum_n IS $0 i IS $1 % Laufvariable res IS $2 % Ergebnis speichern tmp IS $3 % speichert Ergebnis von CMP sum SET i,1 % initialisiere Zählvariable SET res,0 % Ergebnis mit 0 initialisieren loop ADD res,res,i % rechne: res = res + i ADD i,i,1 % erhöhe i um 1 CMP tmp,i,sum_n % vergleiche i mit sum_n BNP tmp,loop % springe solange zu loop, wie i <= sum_n SET $0,res % speichere das Ergebnis in $0 POP 1,0 % gib Wert von $0 zurück % Das Hauptprogramm n IS $1 Main SET n,6 % setze n auf Endwert 6 PUSHJ $0,sum % springe zum Unterprogramm sum und übergebe $1 % hier könnte noch eine Ausgabe von $0 folgen... TRAP 0,Halt,0 % beende Programm