diff --git a/flap/questions/retrolixToX86_64/03.retrolix b/flap/questions/retrolixToX86_64/03.retrolix index 82d8927..9052a68 100644 --- a/flap/questions/retrolixToX86_64/03.retrolix +++ b/flap/questions/retrolixToX86_64/03.retrolix @@ -1,16 +1,17 @@ -def fact () - %rax <- copy 1; - boucle: jumpif lte %rdi, 1 -> fin, suite; - suite: %rax <- mul %rax, %rdi; - %rdi <- sub %rdi, 1; - jump boucle; - fin: ret; -end - globals (res) - %rdi <- copy 5; - fact(); - res <- copy %rax; - %rdi <- copy res; - print_int(); + local compteur: + compteur <- copy 5; + res <- copy 1; + + condition: + jumpif lte compteur, 1 -> fin, boucle; + + boucle: + res <- mul res, compteur; + compteur <- sub compteur, 1; + jump condition; + + fin: + %rdi <- copy res; + print_int(); end