これは私のコードです:
.data
.ascii "r", "o", "r", "y", "\n"
key: .word 2
.text
.globl main
main: la $t0, string
move $t5, $t0 # preserve original data
la $t1, key # load cypher into t1 reg
lw $a1, 0($t1) # key loaded into a1 reg
Loop: lb $a0, 0($t5) # ith element of array loaded into a0
beq $a0, 10, exit_all # if ith character is \n, get out of loop
jal sub1 # otherwise, call sub
addi $t5, $t5, # increment index of array
j Loop
exit_all: syscall
sub1:
some code
move $v0, $t0 # what i want to return to main
jr $ra # exit iteration
サブルーチンを含むループがあります。subは($ v0 regで)'jr$ra'コマンドがフローをメイン関数に返すたびに保存したい出力を返します。データセグメントへの入力の直後にこれらの出力を保存する必要があります。どうすればこれを行うことができますか?それが1つの出力だけだった場合、私は言うことができます:
sb $v0, 4($t1)
直後に保存されます。しかし、複数の出力があるので、一般的な方法でこれを行うにはどうすればよいですか?