// // Berechnung der Fibonacci-Folge // // Name: // Datum: #include "testSuite.inc" .file "fibonacci.S" .text @ legt eine Textsection fuer PrgrammCode + Konstanten an .align 2 @ sorgt dafuer, dass nachfolgende Anweisungen auf einer durch 4 teilbaren Adresse liegen @ unteren 2 Bit sind 0 .global fiborec .type fiborec,function .global fiboreccache .type fiboreccache,function .global fiboiter .type fiboiter,function .global fiboitercache .type fiboitercache,function .global fibocache_flush .type fibocache_flush,function fiborec: // Hier kommt Ihre Implementierung der rekursiven Fibonacci-Berechnung BX LR .size fiborec,.-fiborec fiboreccache: // Hier kommt Ihre Implementierung der rekursiven Fibonacci-Berechnung mit der Nutzung eines Caches BX LR .size fiboreccache,.-fiboreccache // ---------- Zusatzaufgaben ---------- fiboiter: // Hier kommt Ihre Implementierung der iterativen Fibonacci-Berechnung BX LR .size fiboiter,.-fiboiter fiboitercache: // Hier kommt Ihre Implementierung der iterativen Fibonacci-Berechnung mit der Nutzung eines Caches BX LR .size fiboitercache,.-fiboitercache fibocache_flush: LDR R1, =fibocache EOR R0, R0 MOV R2, #(MAX_ENTRIES) fibocache_flush_loop: SUBS R2, R2, #1 MOVLT PC, LR STR R0, [R1, R2, LSL #2] B fibocache_flush_loop .size fibocache_flush, .-fibocache_flush .bss .align 2 // Cache zum Zwischenlagern von vorher berechneten Fibo-Zahlen. Wird mit Nullen vorinitialisiert. fibocache: .space MAX_ENTRIES*4, 0 // End of File