0

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;
}
4

1 に答える 1