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