Fibonacci und Fakultät Rekursiv in MIPS implementiert. PDF

Title Fibonacci und Fakultät Rekursiv in MIPS implementiert.
Course Rechnerorganisation
Institution Technische Universität Darmstadt
Pages 2
File Size 55.6 KB
File Type PDF
Total Downloads 689
Total Views 927

Summary

FIBONACCI REKURSIV fib(n)= fib(n-1) + fib(n-2), mit fib(1)=fib(0)=0 fib: addi $sp, $sp, -12 # Platz auf Stack machen sw $s0, 8($sp) # $s0 auf dem Stack sichern sw $a0, 4($sp) # $a0 auf dem Stack sichern sw $ra, 0($sp) # $ra auf dem Stack sichern bne $a0, $0, elseif # n == 0? add $v0, $0, $0 # if (n=...


Description

FIBONACCI REKURSIV fib(n)= fib(n-1) + fib(n-2), mit fib(1)=fib(0)=0 # Platz auf Stack machen fib: addi $sp, $sp, -12 sw $s0, 8($sp) # $s0 auf dem Stack sichern sw $a0, 4($sp) # $a0 auf dem Stack sichern sw $ra, 0($sp) # $ra auf dem Stack sichern bne $a0, $0, elseif # n == 0? add $v0, $0, $0 # if (n==0), return 0 addi $sp, $sp, 12 # $sp wiederherstellen jr $ra elseif:

else:

addi $t0, $0, 1 bne $a0, $t0, else addi $v0, $0, 1 addi $sp, $sp, 12 jr $ra

# n == 1? # if (n==1), return 1 # $sp wiederherstellen

addi $a0, $a0, -1 jal fib # fib(n-1)

# n = n-1

add $s0, $v0, $0 lw $a0, 4($sp) addi $a0, $a0, -2 jal fib # fib(n-2)

# $s0 = fib(n-1) # $a0 wiederherstellen # n = n-2

add $v0, $s0, $v0 # $v0 = fib(n-1) + fib(n-2) lw $s0, 8($sp) # $s0 wiederherstellen lw $ra, 0($sp) # $ra wiederherstellen addi $sp, $sp, 12 # $sp wiederherstellen jr $ra # Rückkehr zum Aufrufer

FAKULTÄT REKURSIV n! = n-1 * n-2 * … * 1 main:

addi $a0, $0, 3

# Beispiel Wert

addi $sp, $sp, -8 sw $ao, 4($sp) sw $ra, 0($sp)

# Speicher reservieren # $a0 auf dem Stack sichern # $ra auf dem Stack sichern

addi $t0, $0, 2 slt $t0, $a0, $t0 beq $t0, $0, else

# $t0 = 2 zum vergleich # $a0 < 2 ? ($a0 ? 2 → else

addi $v0, $0, 1 addi $sp, $sp, 8

# $v0 = 1 setzen # Speicher freimachen

fakultät:

jr $ra else:

add $a0, $a0, -1 jal fakultät

# $ao = $a0 – 1

lw $ra 0($sp) lw $a0, 4($sp)

# Letztes $ra laden # Letztes $a0 laden

mul $v0, $a0, $v0

# §vo = $v0 * $a0 (hier: v0 = 1*2 = 2 → v0 = 2*3 = 6) # Speicher freimachen

addi $sp, $sp, 8 jr $ra...


Similar Free PDFs