我試圖做出直接翻譯成MIPS這個C代碼,而無需修改任何指示:一個C轉換爲MIPS
for (i=0; i<128; i++)
{ a[i] = b[i] - c[i] + 5; }
我只是想了解一些事情。這裏是我到目前爲止
add $t4, $zero, $zero # I1 i is initialized to 0, $t4 = 0
Loop:
add $t5, $t4, $t1 # I2 temp reg $t5 = address of b[i]
lw $t6, 0($t5) # I3 temp reg $t6 = b[i]
add $t5, $t4, $t2 # I4 temp reg $t5 = address of c[i]
lw $t7, 0($t5) # I5 temp reg $t7 = c[i] + 5
sub $t6, $t6, $t7 # I6 temp reg $t6 = b[i] - c[i] + 5
add $t5, $t4, $t0 # I7 temp reg $t5 = address of a[i]
sw $t6, 0($t5) # I8 a[i] = b[i] - c[i] + 5
addi $t4, $t4, 4 # I9 i = i + 1
slti $t5, $t4, 256 # I10 $t5 = 1 if $t4 < 128, i.e. i < 10
bne $t5, $zero, Loop # I11 go to Loop if $t4 < 128
exit:
我不知道我是否需要通過自身或者其確定我有它的方式來加載5在那裏與C [1]加載?任何提示都會有幫助,因爲我仍然在嘗試學習mips。謝謝!
你真正的問題是什麼?提示:問題通常應該在最後有一個問號,特別是在這樣的質量保證網站中:-) – hyde
我添加了一個問號,但讓我知道是否需要更多解釋 – Nuf