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

标签 arrays memory-management mips mars-simulator

<分区>

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

int n = 3;
int [] arr = new int[n];

我正尝试在 MIPS 中用类似的东西做同样的事情:

.text 
.global main

main:
li $t1, 4

.data
arr: .space $t1

但这给出了一个错误:

".space" requires a non-negative integer

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

最佳答案

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

分配的内存地址随后返回到$v0中。

关于arrays - 如何在 MIPS 中分配可变大小的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49617321/

相关文章:

php - Laravel 合并数组

垃圾内存支持的java编码标准

java - log4j 1.2 - 异步记录器内存使用限制设置

C++:以下代码有什么问题吗?

java - Java中比较2个以上(动态决定多少个列表)列表

Python - 将数组的数组打印为表格

java - 如何以正确的方式动态处理开始和结束线程和信息?

linux - 支持 FIPS 的 OpenSSL 交叉编译 : incore fingerprint issue

arrays - 在 MIPS/Assembler 中将 ASCII 数字字符串转换为 int

assembly - MIPS 十六进制输出