#### Tail Recursive Fibonacci function #### #### File: tail_fibonacci.asm #### Author: () #### Assignment: 4 ## ## Call Tree Size of fibonacci ( m ) ~ ## for 12 <= m <= 22. ## Recursion Variables: ## ## fibonacci_recurse ( m, n, fn_previous, fn ) ## ## m The value for which the fibonnaci ## function is to be computed. ## ## n The last value for which the fibonnaci ## function has been computed so far. ## ## fn_previous Equals fibonacci ( n - 1 ) ## ## fn Equals fibonacci ( n ) ## RR: fibonacci ( 0 ) ===> 0 ## fibonacci ( m ) ## ===> fibonacci_recurse ( m, 1, 0, 1 ) ## if m >= 0 ## ## fibonacci_recurse ( m, n, fn_previous, fn ) ## ===> fn if m == n ## ===> fibonacci_recurse ## ( m, n+1, fn, fn_previous + fn ) ## if m != n ## ## where m, n, fn_previous, fn are an integers # ## C-Code: ## ## ## # ## # Temporary to keep tests happy. # .globl fibonacci fibonacci: li $v0, 0 jr $ra # # Temporary to keep tests happy. # .globl fibonacci_recurse fibonacci_recurse: li $v0, 0 jr $ra