我有这个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
答案 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
当然,您可以通过循环来完成此操作。