Funktionsaufrufe
Die Fakultät soll nun rekursiv mit Funktionsausrufen programmiert werden:
program global: n (initilaized) on halt: n <- n! function factorial(n) local: tmp returns: n! begin if (n>1) then tmp <- n n <- n-1 tmp <- tmp * factorial(n) return tmp else return 1 end end begin n <- factorial(n) end
Festlegungen für Verwendung der Register
.equ ZERO, 0 .equ RIP, 1 .equ RSP, 3 .equ CALL, 4 .equ RET, 5 .equ N, 6 .equ LOCAL1, 7 .equ LOCAL2, 8