hi kann mir wer bei der implementierung der fibonaccifolge in assembler helfen :
die folge ist wie folgt definiert :
für n=0 f(n)=0, für n=1 f(n)=1
für n>=2 : f = f(n-1)+f(n+2)
krieg dass einfach nicht gebacken, bin für jeden lösungsvorschlag sehr dankbar
mfg hategrown
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
Modulo ist bei berechnungen die binär erfolgen overkill. Dafür gibt es die schiebefunktionen.
.text
.globl __start
__start:
ori $t0, $zero, 32 #so viele bits zu testen
ori $v0, $zero, 0 #so viele schon gefunden
__loop:
andi $t1, $a0, 1 #$t1=0 wenn unterstes bit==0 und t1=1 wenn unterstes bit==1
add $v0, $v0, $t1 #$v0 erhöht sich um eins, wenn im untersten bit von $a0 eine eins war
srl $a0, $a0, 1 #$a0 um eine stelle nach rechts schieben, unterstes bit fliegt raus und wird durch das zweite ersetzt
addi $t0, $t0, -1 #zähler verringern
beq $t0, $zero, __end #wenn alle 32 bits getestet, $v0 zurückgeben
j __loop
__end:
j $ra
mr.escape