Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

fibonaccifolge in mips assembler

hategrown / 9 Antworten / Flachansicht Nickles

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

bei Antwort benachrichtigen
mr.escape hategrown „hi ! ich hätt da noch ein problem/frage kann man in mips assembler mit modulo...“
Optionen

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

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen