.data .org 0x10 list: .fill 0x1 ;1. element = 1 ;0x10 .fill 0x1 ;2. element = 1 ;0x14 .fill 0x100, 0x0 ;nullen.. .text main: ldi r1, 9; ldil r10, list@lo ldih r10, list@hi call+ fibmem; br+ main; ; if (list[n] == true) { ; return list[n] ; } ; erg = list[n] = fib(n-1) + (n-2) ; return erg fibmem: lls r2, r1, 2 ; * 4 add r2, r10, r2 ldw r0, 0(r2) cmpi r0, 0 retnz- push r2 ; addr pushen push r1 ; param pushen subi r1, r1, 1 call+ fibmem pop r1 ; param poppen push r0 ; zwischenerg pushen subi r1, r1, 2 call+ fibmem pop r2 ; zwischenerg poppen add r0, r2, r0 pop r2 ; addr poppen stw r0, 0(r2) ; ergebnis speichern ret+