我有一个斐波那契函数的 MIPS 代码,在终端中传递一个自然数,程序返回该位置的斐波那契数,但它不起作用,我该如何修改代码才能做到这一点?我几乎明白了,但需要一些帮助:)
这是我得到的当前代码:
.data
ask4num: .asciiz "Enter a number: "
printNum: .asciiz "\nThe number on the Lucas Sucession is: "
.text
.globl main
main:
# print text
addi $v0, $zero, 4
la $a0, ask4num
syscall
# get number
addi $v0, $zero, 5
syscall
# store number in $t0
addi $t0, $v0, 0
# prit text
addi $v0, $zero, 4
la $a0, printNum
syscall
jal Fib
addi $v0, $zero, 1
addi $a0, $v1, 0
syscall
addi $v0, $zero, 10
syscall
Fib:
addi $sp, $sp, -12
sw $ra, 0($sp)
sw $a0, 4($sp)
sw $s0, 8($sp)
beq $a0, $zero, ReturnZero
addiu $t0, $zero, 0
slti $t0, $a0, 2
bne $t0, $zero, ReturnOne
addi $a0, $a0, -1
jal Fib
move $s0, $v0
lw $a0, 4($sp)
addi $a0, $a0, -2
jal Fib
add $v0, $v0, $s0
lw $s0, 8($sp)
lw $ra, 0($sp)
addiu $sp, $sp, 12
jr $ra
ReturnZero:
lw $s0, 8($sp)
lw $ra, 0($sp)
addiu $sp, $sp, 12
li $v0, 0
jr $ra
ReturnOne:
lw $s0, 8($sp)
lw $ra, 0($sp)
addi $sp, $sp, 12
li $v0, 1
jr $ra
程序快完成了,只需要一些帮助来修复它,这可能很容易做到。提前致谢!!!!