没有记录器似乎收到价值
.data
.text
main:
li $t1,2
li $t0,3
li $t2,1
j inicio
syscall
inicio:
move $t2,$t1
move $t1,$t0
move $t0,$t1
j end
end:
li $v0,1
syscall
答案 0 :(得分:0)
在执行系统调用1之前,你永远不会为$a0
设置一个值,所以它只输出$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