From 6c1e8fe788b3d71e41b9995fc770158c9c2fa67d Mon Sep 17 00:00:00 2001 From: iliya <iliya.saroukha@hes-so.ch> Date: Tue, 17 Oct 2023 18:19:42 +0200 Subject: [PATCH] started working on last exercise --- 2-3_asm/src/assembleur.s | 54 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/2-3_asm/src/assembleur.s b/2-3_asm/src/assembleur.s index 9339342..9faf541 100644 --- a/2-3_asm/src/assembleur.s +++ b/2-3_asm/src/assembleur.s @@ -10,6 +10,7 @@ .global funcexo1 .global funcexo2 .global funcexo3 +.global funcexo4 /***************************************************** @@ -94,5 +95,58 @@ funcexo3: bx lr + + + +/***************************************************** + * function : exercice 4 + * R0: n + * return value : value of fibonacci sequence for n + *****************************************************/ +.thumb_func +funcexo4: + mov r1, r0 + push {r0, r1, lr} + bl lhs_fact + +lhs_fact: + pop {r0, r1, lr} + sub r0, #1 + cmp r0, #1 + bgt lhs_fact + bl rhs_fact + +rhs_fact: + + +exit_ret: + pop {r0, r1, lr} + mov r0, #1 + + bx lr + + + +fact: + push {r0, r1, lr} + sub r0, #1 + cmp r0, #1 + bgt rcall + sub r1, #2 + cmp r1, #1 + bgt rcall + add sp, #12 + + bx lr + + +rcall: + bl fact + pop {r0, r1, lr} + add r0, r1 + + bx lr + + //.weak add_sat .ltorg -- GitLab