Programmieren - alles kontrollieren 4.940 Themen, 20.676 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 Nachtrag zu: „Modulo ist bei berechnungen die binär erfolgen overkill. Dafür gibt es die...“
Optionen

Noch etwas zum overkill.
Division durch 2^n lässt sich als shift-right um n stellen darstellen, wobei das höchste bit bei vorzeichenbehafteter darstellung beim schieben nicht durch 0 sondern sich selbst ersetzt wird, damit das ergebnis nicht falsch wird.
Der rest einer solchen division sind die ersten n bits vor dem shift-right (also genau das, was später raus fliegt).
Da in der aufgabenstellung die darstellung im zweierkomplement erwähnt ist (auch wenn das für die gestellte aufgabe unbedeutend ist), sollte nicht wie von mir verwendet srl (shift right logical), sondern sra (shift right arithmetic, also beibehaltung des höchsten bits oder auch srl der unteren 31 bits und kopieren des 32. bit ins 31. bit) verwendet werden.
Statt
    srl     $a0, $a0, 1
also
    sra     $a0, $a0, 1

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