30 lines
406 B
Plaintext
30 lines
406 B
Plaintext
function l $zerop (l %n) {
|
|
@start
|
|
jnz %n, @b1, @b2
|
|
@b1
|
|
ret 0
|
|
@b2
|
|
ret 1
|
|
}
|
|
|
|
function l $factorial (l %n) {
|
|
@start
|
|
%r1 =l call $zerop (l %n)
|
|
jnz %r1, @b1, @b2
|
|
@b1
|
|
ret 1
|
|
@b2
|
|
%r2 =l sub %n, 1
|
|
%r3 =l call $factorial (l %r2)
|
|
%r4 =l mul %n, %r3
|
|
ret %r4
|
|
}
|
|
|
|
data $fstr = { b "fac 3 = %d\n", b 0 }
|
|
|
|
export function w $main () {
|
|
@start
|
|
%r =l call $factorial (l 3)
|
|
call $printf (l $fstr, ..., l %r)
|
|
ret 0
|
|
} |