0
add $s0, $s0, $s1
add $s0, $s0, $s2
add $s0, $s0, $s3
add $s0, $s0, $s4

他の指示は与えられていないので、$s0=a、$s1=b、$s2=c、$s4=d と仮定しました。これは、翻訳された C コードについて私が持っているものですが、それが正しいかどうかはわかりません。

a=a+b+c+d
4

2 に答える 2

-1
add $s0, $s0, $s1 # $s0 = $s0 + $s1
add $s0, $s0, $s2 # $s0 = $s0 + $s2 (= $s0 + $s1 + $s2)
add $s0, $s0, $s3 # $s0 = $s0 + $s3 (= $s0 + $s1 + $s2 + $3)
add $s0, $s0, $s4 # $s0 = $s0 + $s4 (= $s0 + $s1 + $s2 + $s3 + $s4)

したがって、上記のコードは

$s0 += $s1 + $s2 + $s3 + $s4;

補足として、上記のコードは不要な依存関係を導入し、命令を並列に実行できないため、実行が遅くなる可能性があります。命令を次のように並べ替えます。

add $t0, $s0, $s1
add $t1, $s2, $s3
add $s0, $s4, $t0
add $s0, $s0, $t1

多分よくなる

于 2013-10-28T06:47:38.367 に答える