Сборка в мипс - PullRequest
       7

Сборка в мипс

0 голосов
/ 21 октября 2018

Я пытался написать функцию Фибоначчи в сборке mips с использованием MARS 4.5, получил некоторые проводные материалы, ниже приведена хорошо выполненная версия, но когда я поместил код строки 1 вместо строки 2 (затем исключил кодв строке 1), всегда возвращает 1 как результат, почему?В чем разница?

.data   

prompt1 : .asciiz "Input a integer : \n"
prompt2 : .asciiz "The result is : \n"

.text
    .globl main

main :
    li  $v0  4
    la  $a0  prompt1
    syscall 

    li  $v0  5
    syscall 

    move  $a0  $v0

    jal  fib

    move  $t0  $v0

    li    $v0  4
    la    $a0  prompt2
    syscall

    li    $v0  1
    move  $a0  $t0
    syscall

    li  $v0  10
    syscall

fib :
    subi  $sp  $sp  12
    sw    $ra  0($sp)
    sw    $a0  4($sp)

    li   $v0  1               ############# line 1
    beq  $a0  1  final
    beq  $a0  2  final

    subi  $a0  $a0  1
    jal   fib

    sw    $v0  8($sp)

    lw    $a0  4($sp)
    subi  $a0  $a0  2
    jal   fib

    lw    $t1  8($sp)
    add   $v0  $v0  $t1


final :

       ###############                    line 2

    lw  $ra  0($sp)

    addi  $sp  $sp  12
    jr    $ra
...