From 02b2ed46c79707f2b0dcd6acf3433de65ecb9031 Mon Sep 17 00:00:00 2001 From: Persson-dev Date: Sun, 22 Dec 2024 11:47:16 +0100 Subject: [PATCH] add fibo example --- test/fibo.asm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 test/fibo.asm diff --git a/test/fibo.asm b/test/fibo.asm new file mode 100644 index 0000000..a8148d5 --- /dev/null +++ b/test/fibo.asm @@ -0,0 +1,37 @@ + XOR R0 R0 R0 + ADD R0 R0 #7 # n = 7 + XOR R1 R1 R1 + ADD R1 R1 #1 # constante à 1 + XOR R7 R7 R7 + ADD R7 R7 #40 # SP = 40 + STR R0 R7 # on empile n + CALL fibo # on appelle fibo dessus + JMP fin # on saute à la fin du programme +fibo: + LD R2 R7 # on dépile n + JSUP R2 R1 suite # si n <= 1, on retourne n (donc on ne fait rien) + RET +suite: + SUB R2 R2 #1 + STR R2 R7 # on empile n - 1 + ADD R7 R7 #1 + SUB R2 R2 #1 + STR R2 R7 # on empile n - 2 + CALL fibo + LD R2 R7 # on dépile fibo(n-2) + SUB R7 R7 #1 + LD R3 R7 # on dépile n - 1 + STR R2 R7 # on empile fibo(n-2) + ADD R7 R7 #1 + STR R3 R7 # on empile n - 1 + CALL fibo + LD R2 R7 # on dépile fibo(n-1) + SUB R7 R7 #1 + LD R3 R7 # on dépile fibo(n-2) + ADD R2 R2 R3 + STR R2 R7 # on empile fibo(n) + RET +fin: + LD R1 R7 +stop: + JMP stop \ No newline at end of file