C++ MIPS语言中的嵌套和递归过程
F和G是两个程序,在伪高级语言中定义如下 级别: 使用QtSpim编写并测试一个程序,该程序读取第一个自然数n,并在控制台上显示: 程序G n返回的值,如所述实现G和F 先前对两个程序G和F的调用必须使用jal跳转和链接指令来实现 带有参数介于之间的嵌套调用序列的轨迹 括号和各种嵌套调用返回的值返回括号之间的值,对于G和F n=1时的控制台输出示例: 结果:g1=4 轨迹:G1->F0->F-return 1->F1->F0->F-return 1->F-return 3->G-return 4C++ MIPS语言中的嵌套和递归过程,c++,c,mips,C++,C,Mips,F和G是两个程序,在伪高级语言中定义如下 级别: 使用QtSpim编写并测试一个程序,该程序读取第一个自然数n,并在控制台上显示: 程序G n返回的值,如所述实现G和F 先前对两个程序G和F的调用必须使用jal跳转和链接指令来实现 带有参数介于之间的嵌套调用序列的轨迹 括号和各种嵌套调用返回的值返回括号之间的值,对于G和F n=1时的控制台输出示例: 结果:g1=4 轨迹:G1->F0->F-return 1->F1->F0->F-return 1->F-return 3->G-return 4
有没有人能帮我用MIPS语言翻译这段C/C++代码?稍微修改一下,“伪语言高级”代码是纯C89。您必须更改F和G的顺序或添加向前声明。顺便说一句,只有F是递归的,没有嵌套。G就叫F
#include <stdio.h>
int F(int m)
{
if(m == 0) {
return 1;
}
else {
int p = F(m-1);
return (2*p)+m;
}
}
int G(int n)
{
int b = 0;
int u = 0;
for (int k = 0; k <= n; k++) {
u = F(k);
b = (b*b)+u;
}
return b;
}
int main(int argc, char** argv)
{
printf("%u\n", G(2));
return 0;
}
你有一个明确的编译你的代码到MIPS。当然,如果这是作业,让gcc帮你做作业可能会被视为作弊。你忘了问问题。对不起,你是对的。我想知道是否有人能帮我把C/C++语言翻译成MIPS语言,谢谢
#include <stdio.h>
int F(int m)
{
if(m == 0) {
return 1;
}
else {
int p = F(m-1);
return (2*p)+m;
}
}
int G(int n)
{
int b = 0;
int u = 0;
for (int k = 0; k <= n; k++) {
u = F(k);
b = (b*b)+u;
}
return b;
}
int main(int argc, char** argv)
{
printf("%u\n", G(2));
return 0;
}
gcc -Wall -std=c99 -march='mips3' -S -c filename.c