【发布时间】:2017-09-30 06:16:15
【问题描述】:
如果给你:
calc (int b) {
return b - 2;
}
它将如何转换为 MIPS?
我考虑过以下几点:
addi $v0, $a0, -2
jr $ra
***********************
jr $ra
addi $v0, $a0, -2
***********************
addi $v0, $a0, 2
jr $ra
***********************
lw $v0, 0($a0)
addi $v0, $v0, -2
jr $ra
我只是在 MIPS 中学习函数,希望得到建议。在这种情况下使用“lw”指令有什么意义吗?
【问题讨论】:
-
Andre,如何在您的 ABI 变体中传递参数,返回地址存储在哪里? MIPS 的版本是多少?它有“分支delay slot”吗? LW 用于从 RAM 内存中加载数据:en.wikipedia.org/wiki/MIPS_architecture#Loads_and_stores
标签: c++ function mips code-conversion