Assembly 如何在MARS中打印出几个整数参数,使用li$v01,syscall只打印出第一个参数

Assembly 如何在MARS中打印出几个整数参数,使用li$v01,syscall只打印出第一个参数,assembly,mips,mars-simulator,Assembly,Mips,Mars Simulator,我有一个main函数,它调用另一个函数diffofsum,对这四个参数进行计算。当我使用li$v01时,syscall只输出MARS模拟器中Run/IO中的第一个参数2。所以问题是我如何打印出所有四个参数 .text main: addi $a0,$0,2 #argument 0 = 2 addi $a1,$0,3 #argument 1 = 3 addi $a2,$0,4 #argument 2 = 4 addi $

我有一个
main
函数,它调用另一个函数
diffofsum
,对这四个参数进行计算。当我使用
li$v01时,syscall
只输出MARS模拟器中Run/IO中的第一个参数
2
。所以问题是我如何打印出所有四个参数

.text
 main:

       addi $a0,$0,2    #argument 0 = 2
       addi $a1,$0,3    #argument 1 = 3
       addi $a2,$0,4    #argument 2 = 4
       addi $a3,$0,5    #argument 3 = 5
       jal  diffofsum       # call function 

       li $v0,1
       syscall
       add  $s0,$v0,$0  # return value

       li $v0,10
       syscall

这是因为syscall打印存储在$a0中的值,所以需要将$a0更新为$a1、a2和$a3中的值。 下面是做事情的漫长道路:

li $v0,1
add $a0, $0, $a1
syscall #prints $a1

add $a0, $0, $a2
syscall #prints $a2


add $a0, $0, $a3
syscall #prints $a3

当然,您可以通过循环来实现这一点。

对所有数字重复,可能是在循环中?