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