在分支指令上出现语法错误

时间:2018-10-06 20:59:52

标签: assembly syntax-error branch mips qtspim

我正在尝试执行斐波那契数列,但是给我bge $ s0,$ t0,Felse带来了Spim:(解析器)语法错误。我在QtSpim上运行此代码,某些分支指令的工作方式类似于bgtz,但是对于大多数分支指令来说,这给了我语法错误,有人可以解释我在做什么吗?

.data
.globl welcome
wlecome:
    .ascii "\nPrinting fibonacci sequence up to inputted number\n"
    .asciiz "Please enter the number: "

.text
.globl main
main:
    ori     $v0, $0, 4      # command to print string
    lui     $a0, 0x1001
    ori     $a0, $a0,0
    syscall
    ori     $v0, $0, 4      # command to print string
    lui     $a0, 0x1001
    ori     $a0, $a0,0x0034
    syscall
    ori     $v0, $0, 5      #command to read integer
    syscall
    add     $a0, $zero, $v0
    jal     fib

fib:
    addi    $sp, $sp, -12
    sw      $ra, 0($sp)
    sw      $s0, 4($sp)
    sw      $s1, 8($sp)
    add     $s0, $zero, $a0
    addi    $t0, $zero, 2
    bge     $s0, $t0, Felse
    addi    $v0, $zero, 1
    j       End


Felse:
    addi    $a0, $s0, -2
    jal     fib
    add     $s1, $zero, $v0
    addi    $a0, $s0, -1
    jal     fib
    add     $v0, $s1, $v0
End:
    lw      $s1, 8($sp)
    lw      $s0, 4($sp)
    lw      $ra, 0($sp)
    addi    $sp, $sp, 12
    jr      $ra

0 个答案:

没有答案