我正在尝试学习MIPS。我遇到的问题是我无法创建可变大小的数组。例如,在Java中你可以做到
int n = 3;
int [] arr = new int[n];
我正在尝试用MIPS做同样的事情:
.text
.global main
main:
li $t1, 4
.data
arr: .space $t1
但这会产生错误:
“。space”需要一个非负整数
有什么建议吗?我该怎么解决这个问题呢。
答案 0 :(得分:1)
引用this question,一种解决方案是为堆上的数组分配空间。假设您正在使用MARS来运行MIPS代码,您可以将9
加载到$v0
中,$a0
应该表示要分配的内存字节数。然后,您应该执行syscall
。
然后在$v0
中返回已分配内存的地址。