Information

Deadline 29/03/2024 12:00:00
Submission limit No limitation

Sign in

TP5 - Les fonctions 8

Le simulateur est disponible ici : http://asm.info.ucl.ac.be/ Vous pouvez trouver le syllabus ici : https://sites.uclouvain.be/LSINC1102/pfo/introduction.html


Appel à une fonction

Vous devez récupérer les arguments passés à votre fonction. Vous ne pouvez pas utiliser directement les variables déclarées avec DB

https://en.wikipedia.org/wiki/Fibonacci_sequence

La suite de Fibonacci est une suite bien connue, elle se définit récursivement par fib(n)=fib(n-1)+fib(n-2). Cela donne la suite suivante :

1,1,2,3,5,8,...

Par convention les deux premier élements de la suite sont 1 => fib(1) = 1 et fib(2) = 1.

Dans cet exercice, il vous est demandé de fournir une implémentation récursive de la fonction "fib". Cette fonction prend un seul argument "n" et renvoie le nième élement de la suite de Fibonacci. Le cas de base vous est déja fourni. Vous devez compléter le cas récursif. Attention vous devez êtes obligé d'utiliser un appel récursif, vous ne pouvez pas utiliser d'instruction de saut (JMP, JAE, etc) ni l'instruction CMP.

Les tests INGInious vont initialiser les variables de la façon suivante :

MOV B, [rb]
MOV C, [rc]
MOV D, [n]
CALL fib
HLT
; Le label fib est déja déclaré pour vous
fib:
CMP D, 2
JA rec
MOV A, 1
RET
rec:
; Votre code sera inséré ici par INGINIOUS
HLT
n: DB "?"
rb: DB "?"
rc: DB "?"