【发布时间】:2023-03-17 09:37:01
【问题描述】:
我是 MIPS 的新手,虽然我有点了解如何使用它来完成基本任务,但我在处理过程/功能方面遇到了很大的困难。
我希望有人能解释如何解决一个简单的 CPP 程序,例如
void swap( int & a, int & b )
{
register int t;
t = a; a = b; b = t;
}
进入 MIPS。 在课堂上我们讨论了帧指针和堆栈指针,偏移量,我只是迷路了。如何将 int a 和 int b 传递给函数?你如何返回一个值并在 MIPS 中使用它?我已经看到数组有类似的问题,但希望有人可以帮助我解决一个只需要交换两个整数的问题。谢谢。
【问题讨论】:
-
不清楚您想要什么作为答案。 “解决一个简单的 CPP 程序”是什么意思? - 解释它在 C 级别上是如何工作的?它会如何看待 asm 级别?它在 asm 级别如何工作?
-
对不起,我的意思是你将如何用汇编语言/MIPS 实现它。
-
为什么不compile it and see for yourself?您可能需要关闭任何优化,以免它们影响画面。
-
如果您使用指针而不是引用变量,您可能会发现这更容易。即 void swap(int *a,int *b){register int t; t=*a;*a=*b;*b=t;} 调用使用swap(&c,&d);