Mips 系统调用打印int

Mips 系统调用打印int,mips,Mips,我只是想知道为什么这不起作用: Print Integer: li $v0, 1 li, $a0, $v0 #with $v0 being an added up value syscall 但是,这是可行的: Print Integer: li $v0, 1 li, $a0, 100 syscall 是否有任何寄存器可用于打印被算法更改的整数?我一直认为$v0是存储返回的寄存器。首先,这里有一

我只是想知道为什么这不起作用:

Print Integer:   li $v0, 1
             li, $a0, $v0     #with $v0 being an added up value
             syscall
但是,这是可行的:

Print Integer:  li $v0, 1
        li, $a0, 100
        syscall

是否有任何寄存器可用于打印被算法更改的整数?我一直认为$v0是存储返回的寄存器。

首先,这里有一个语法错误:

li, $a0, $v0
li
后不应有逗号

其次,
li
伪指令的目的是加载即时数据(例如,1、0x42或12345)。如果要将一个寄存器的内容移动(复制)到另一个寄存器,请使用
move
(如
move$a0,$v0


最后,您在代码的第一行指定了
$v0
值1,因此即使您正确地说了
移动$a0,$v0
,您仍然会得到
$a0=1
。如果您想要
$v0
的上一个值,您必须在
li$v0,1
之前执行
移动$a0,$v0
,首先,这里有一个语法错误:

li, $a0, $v0
li
后不应有逗号

其次,
li
伪指令的目的是加载即时数据(例如,1、0x42或12345)。如果要将一个寄存器的内容移动(复制)到另一个寄存器,请使用
move
(如
move$a0,$v0


最后,您在代码的第一行指定了
$v0
值1,因此即使您正确地说了
移动$a0,$v0
,您仍然会得到
$a0=1
。如果您想要
$v0
的上一个值,您必须在
li$v0,1
之前执行
移动$a0,$v0

当我将逗号粘贴到这里时,它只是一个错误,谢谢,我最后做的是将答案移动到$s0,并将其置于
li$v0上方,1
就像你说的。当我把逗号粘贴到这里时,它只是一个错误,谢谢,我最后做的是把答案移到$s0,然后把它放在
li$v0,1
上面,就像你说的那样。