MIPS アセンブリの学習を始めたばかりで、条件付きで手順に戻る方法がわかりませんcaller。例は私の質問をより明確にします。をcaller呼び出す前に何かを行うプロシージャがあります。終了後にmultiplyこのプロシージャを実行したいです。条件を使用してラベルにジャンプする方法は知っていますが、代わりに の直後に戻りたいです。返すには を使用する必要があることはわかっていますが、条件を使用して呼び出すことはできますか?other thingsmultiplybeq $t3, 80, callercallerjal multiplyjr $ra
caller:
doing_somehing
jal multiply
other_things
multiply:
beq $t3, 80, caller
lw $t4, array($t3)
mul $t4, $t4, $t1
sw $t4, array($t3)
addi $t3, $t3, 4
j multiply
アセンブリは、次の C コードのように動作する必要があります。
void caller()
{
doing_something();
multily();
other_things();
}
void multiply()
{
int i = 0;
while (i < 80)
{
someUnrelated();
i += 4;
}
return;
}