Question: FIB ; 3 * FIB ( n - 1 ) - 3 * FIB ( n - 2 ) + FIB ( n - 3
FIB
; FIBnFIBn FIBn
ADD R R #
STR R R # ; push return addr
ADD R R #
STR R R # ; push prev frame ptr
ADD R R #
; BASE CASES
; checking n
LDR R R #
BRnp ENDIF
ADD R R #
STR R R #
BRnzp RETURNFIB
ENDIF
; checking n
LDR R R #
ADD R R #
BRnp ENDIF
ADD R R #
STR R R #
BRnzp RETURNFIB
ENDIF
; checking n
LDR R R #
ADD R R #
BRnp ENDIF
ADD R R #
STR R R #
BRnzp RETURNFIB
ENDIF
ADD R R #
LDR R R #
ADD R R #
STR R R # ; push argument n
ADD R R # ; push return value
JSR FIB
LDR R R # ; return value
ADD R R R
ADD R R R ; FIBn
STR R R # ; put in return value xFF xFFA
ADD R R # ; pop return value
ADD R R # ; pop arg
ADD R R #
LDR R R #
ADD R R #
STR R R # ; push argument n
ADD R R # ; push return value
JSR FIB
LDR R R # ; return value
ADD R R R
ADD R R R ; return value
; FIBnFIBn
LDR R R #
NOT R R
ADD R R # ; two's
ADD R R R
STR R R # ; xFF xFFA
ADD R R # ; pop return value
ADD R R # ; pop arg
ADD R R #
LDR R R #
ADD R R #
STR R R # ; push arg n
ADD R R # ; return value
JSR FIB
LDR R R # ; return value
ADD R R # ; popping rv
ADD R R # ; pop arg
LDR R R #
ADD R R R
STR R R # ; complete calc and put return value xFF xFFA
RETURNFIB
LDR R R #
ADD R R # ; pop prev frame ptr
LDR R R #
ADD R R # ; pop return address
RET
help fix this code to get the desired outputs for
F
F I am getting
F I am getting
F I am getting
F I am getting
F I am getting
F I am getting
F I am getting
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
