Mips 首先在a0中加载integer,然后调用";li v0,1?“;?

Mips 首先在a0中加载integer,然后调用";li v0,1?“;?,mips,Mips,我在读如何打印整数,我做了一个函数: display_int: li $v0, 1 syscall jr $ra 我这样调用display\u int: add $a0, $zero, $v0 # load another function result in a0 to print it jal display_int 但是每个显示整数的代码都是这样写的:首先调用li$v0,1,然后在$a0和syscall中保存一些整数。我做得对吗?还是应该在加载$v0中的一后加载整数?加载寄存器的

我在读如何打印整数,我做了一个函数:

display_int:
 li $v0, 1
 syscall
 jr $ra
我这样调用display\u int

add $a0, $zero, $v0 # load another function result in a0 to print it
jal display_int

但是每个显示整数的代码都是这样写的:首先调用li$v0,1,然后在$a0syscall中保存一些整数。我做得对吗?还是应该在加载$v0中的一后加载整数?

加载寄存器的顺序、加载寄存器的时间或方式都无关紧要。只要在发出
syscall
时它们具有正确的值,结果将是相同的。正如gusbro所说,指令顺序并不重要,只要在系统调用时正确的值位于正确的寄存器中。系统调用将查看寄存器以查看其值:它不会在指令流中向后查看值是如何或何时到达的。多亏了你们两位!)我现在明白了。我怎样才能结束这个问题?要“结束”这个问题,只需将您的解决方案作为答案或添加到您的问题中,这样,如果有人需要引用这个问题,他们就可以看到您做了什么。然后,具有较高代表性的成员可以结束该问题