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
当然,您可以通过循环来实现这一点。对所有数字重复,可能是在循环中?