int sign (int i) {
if (i > 0)
return 1;
else if (i < 0)
return -1;
else
return 0;
MIPS如何將C轉換成MIPS彙編代碼?
.data
i: .word
.text
sign:
bgtz i, IF
bltz i, ELSE
addi $a0, $zero, $zero
j END
IF: addi $a0, $zero, 1
ELSE: addi $a0, $zero, -1
END: jr $ra
或者......
.data
i: .word
.text
sign:
bgtz i, IF
bltz i, ELSE
addi $ra, $zero, $zero
j END
IF: addi $ra, $zero, 1
ELSE: addi $ra, $zero, -1
END: jr $ra
我起身到這裏...怎麼做在這種情況下ELSEIF工作......我試圖尋找它,但有並不是我要審查和看看的例子。這個實現是否正確?
「如何將C轉換爲MIPS彙編代碼?」 - 使用MIPS編譯器,也許? – 2013-12-16 22:42:17
'else if'只是恰好在第一個'if'的'else'分支中的另一個'if'。 – Barmar
在'else if'的示例C代碼中沒有合乎邏輯的原因,單個'if'也可以。第二個'else'也沒用。 – usr2564301