如何在MIPS中分配可变大小的数组?

时间:2018-04-02 19:12:55

标签: java arrays memory-management mips mars

我正在尝试学习MIPS。我遇到的问题是我无法创建可变大小的数组。例如,在Java中你可以做到

int n = 3;

int [] arr = new int[n];

我正在尝试用MIPS做同样的事情:

.text 
.global main

main:
li $t1, 4

.data
arr: .space $t1

但这会产生错误:

  

“。space”需要一个非负整数

有什么建议吗?我该怎么解决这个问题呢。

1 个答案:

答案 0 :(得分:1)

引用this question,一种解决方案是为堆上的数组分配空间。假设您正在使用MARS来运行MIPS代码,您可以将9加载到$v0中,$a0应该表示要分配的内存字节数。然后,您应该执行syscall

然后在$v0中返回已分配内存的地址。