If you input the array 1 2 3 4 5 -1
the output is supposed to be 15 14 12 9 5
.
I'm getting seg fault. What am I doing wrong?
.global reverse_prefix_sum
reverse_prefix_sum:
ld r24, X+
cpi r24, -1
breq done2
push r24
call reverse_prefix_sum
pop r22
add r24, r22
adc r25, r23
st Y+, r24
jmp 1f
done2:
ldi r24, 0
clr r25
1:
ret
.global print_array
print_array:
push r24
push r25
clr r25
ld r24, X+
cpi r24, -1
breq done
call print_array
done:
clr r25
ldi r24, 10
2:
ret