diff --git a/flap/questions/retrolixToX86_64/07.retrolix b/flap/questions/retrolixToX86_64/07.retrolix index e69de29..b653317 100644 --- a/flap/questions/retrolixToX86_64/07.retrolix +++ b/flap/questions/retrolixToX86_64/07.retrolix @@ -0,0 +1,27 @@ + +def fact () + local x: + jumpif lte %rdi, 1 -> fini, rec; + + fini: + %rax <- copy 1; + ret; + + rec: + x <- copy %rdi; + %rdi <- sub %rdi, 1; + fact(); + %rax <- mul %rax, x; + ret; +end + +globals (x) + x <- copy 5; + + %rdi <- copy x; + fact(); + x <- copy %rax; + + %rdi <- copy x; + observe_int(); +end