2017-02-16 13 views
0

У меня есть эта функция main, которая вызывает другую функцию diffofsum, которые выполняют некоторые вычисления по этим четырем аргументам. Когда я использую li $v0 1,syscall, он выводит только первый аргумент 2 в Run/IO в симуляторе MARS. Итак, вопрос в том, как я могу распечатать все четыре аргумента ?.

.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

Повторите для всех чисел, возможно, в петле? – Jester

ответ

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 

Конечно, вы можете сделать это с помощью петли.

 Смежные вопросы

  • Нет связанных вопросов^_^