次のCIPSのMIPS変換はありますか?そうでない場合は、詳細に説明してください。私の教授は、バージョン1が正しいと言った。私がバージョン2のような命令を書いた場合、同じ出力を生成してもマークは得られません。彼女は理由を説明しなかった。前もって感謝します !Cからのこれらの2つのMIPS変換は同等ですか?
Cコード
if (i==j) { f = g + h ; } else f = g -h ;
MIPS版1:
bne $s3, $s4, Else
add $s0, $s1, $s2
j Exit
Else: sub $s0, $s1, $s2
Exit:...
MIPSバージョン2:
beq $s3, $s4, Else
sub $s0, $s1, $s2
j Exit
Else: add $s0, $s1, $s2
Exit:...
ありがとうございます。私はそれを得たと思う。いくつかのケースでは同等ではないかもしれません。 f = g + hの実行につながった入力がf = g-hよりも頻繁に実行される場合。 2番目のバージョンではおそらくプロセスを遅くするでしょう。なぜなら、比較の直後にf = g + hを実行する代わりに、別のものにジャンプしなければならなかったからです。 – Snailwalker
はい、そうであっても、これらは同等であり、同じものを実行するのは、同じCコードを翻訳するのではなく、同等であり、cをMIPSに変換したいということです。 – coder