;Recursion
– Example program for THRSim11 – S.Norr
;
Program contains a recursive subroutine to
;
calculate SumR(N) = N + N-1 + N-2 + … + 2 + 1
;
org ff00
lds #00ff
ldaa #10
psha
jsr SumR
pula
bra *
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SumR:
; Calculate RangeSum(N)
; = N + N-1 + N-2 + … + 2 + 1
; Input Registers: None, 4-bit
; variable,
N, passed
; to stack
; {3 .le. N
.le. F}
; Output Registers: None, result on stack
pshx
psha
pshb
tsx
ldab 6,x
decb
beq SumOut
pshb
jsr SumR
pulb
ldaa 6,x
aba
staa 6,x
SumOut:
pulb
pula
pulx
rts
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;