2016-06-19 38 views

回答

0

你從未$a0與價值做了系統調用1之前,所以它只是輸出無論是$a0,這將是零

此外,設置$t0-$t2在您的程序中沒有做任何事情。

這裏有一個稍微清理演示程序:

.data 
msg_space: .asciiz  " " 

    .text 
    .globl main 
main: 
    li  $a1,1 
    jal  prtnum 

    li  $a1,2 
    jal  prtnum 

    li  $a1,3 
    jal  prtnum 

    li  $a1,37 
    jal  prtnum 

    li  $v0,10     # syscall for exit program 
    syscall 

prtnum: 
    # output a space 
    li  $v0,4     # syscall for print string 
    la  $a0,msg_space 
    syscall 

    # NOTE: setting a0 with the number was the missing step 
    move $a0,$a1     # get number to print 
    li  $v0,1     # syscall for print integer 
    syscall 

    jr  $ra      # return from function