2

在 MIPS 中,我知道我可以将数组声明为:

list: .space 20

但是,如果我想根据用户输入创建一个不同大小的数组怎么办?这可能吗?

例如,程序会要求用户输入一个整数 N 并创建一个长度为 N 的数组。

4

2 回答 2

2

这是个好问题。在汇编语言中,您所做的声明变量是静态分配的,也就是说它们是在汇编时分配的。如果您想在运行时根据用户输入分配变量,您至少有两种选择:在堆栈上分配空间(并注意堆栈溢出)或从通常称为堆的内存池中分配。在任何一种情况下,分配都是在朗姆酒时间而不是在组装时间完成的。

于 2012-02-09T04:06:03.337 回答
2

您可以使用系统调用 9 在堆上分配内存

li $a0, numbytes
li $v0, 9
syscall

地址返回$v0

于 2012-02-09T11:43:39.517 回答