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

时间:2017-02-16 16:07:15

标签: assembly mips mars-simulator

我有这个main函数调用另一个函数diffofsum,它对这四个参数进行一些计算。当我使用li $v0 1,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

1 个答案:

答案 0 :(得分:0)

因为系统调用打印了存储在$ 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

当然,您可以通过循环来完成此操作。