我试图在MIPS程序集中为N个结构自动分配内存

时间:2013-02-11 08:13:02

标签: assembly mips

我有一个文本文件,我正在复制并粘贴到我的控制台,第一行是我必须创建的结构数,然后每个连续的三行是我正在尝试的三个数据投入我的结构。是否可以为N个结构正确分配内存(每个结构有一个字符串和两个浮点数),然后将它们存储起来以便我可以在MIPS中稍后访问和排序它们?我在解决问题时遇到了很多麻烦。

感谢您的任何建议。我会添加代码,但我甚至不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

如果您在某种操作系统或其他提供内存管理的环境中运行,您可以使用这些服务动态分配内存(例如SPIM中的sbrk系统调用)。

否则(大小允许)最简单的方法是通过调整堆栈指针来使用堆栈:subu $sp, $sp, $t0将在堆栈上分配$t0个字节。确保$t0是单词大小(4)的倍数,并且在不再需要时释放此内存。警告:已分配的块位于当前函数的框架中,因此您无法将其返回给调用者(但可以将其传递给调用函数)。