From a3d61acb7dc5d5d9deddb02e49adc6ca9539db0d Mon Sep 17 00:00:00 2001 From: weitsai Date: Fri, 1 Aug 2014 18:48:53 +0800 Subject: [PATCH 1/2] Close Lab-1 --- lab-1/fib.s | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lab-1/fib.s b/lab-1/fib.s index 14c6734..879fde5 100644 --- a/lab-1/fib.s +++ b/lab-1/fib.s @@ -15,18 +15,28 @@ fibonacci: @ R4 = R0 - 0 (update flags) @ if(R0 <= 0) goto .L3 (which returns 0) + subs r4, r0, #0 + ble .L3 @ Compare R4 wtih 1 @ If R4 == 1 goto .L4 (which returns 1) + cmp r4, #1 + beq .L4 @ R0 = R4 - 1 @ Recursive call to fibonacci with R4 - 1 as parameter + subs r0, r4, #1 + bl fibonacci @ R5 = R0 @ R0 = R4 - 2 @ Recursive call to fibonacci with R4 - 2 as parameter + mov r5, r0 + subs r0, r4, #2 + bl fibonacci @ R0 = R5 + R0 (update flags) + adds r0, r5, r0 pop {r3, r4, r5, pc} @EPILOG From d1a707330474a029629624bf810d2833bd94d116 Mon Sep 17 00:00:00 2001 From: weitsai Date: Fri, 1 Aug 2014 18:51:50 +0800 Subject: [PATCH 2/2] Fix error and warning to fibseq --- lab-1/fibseq.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lab-1/fibseq.c b/lab-1/fibseq.c index a7163dd..eeaf4ce 100644 --- a/lab-1/fibseq.c +++ b/lab-1/fibseq.c @@ -8,8 +8,12 @@ int main(int argc, char **argv) int result=0; printf("Please input a number:"); - scanf("%d",&number); - result = fibonacci(number); - printf("The fibonacci sequence at %d is: %d\n", number, result); + + if (scanf("%d",&number) == 1) { + result = fibonacci(number); + printf("The fibonacci sequence at %d is: %d\n", number, result); + } + + return 0; }