MIPS汇编语言中的可变长度数组

时间:2012-02-09 03:55:23

标签: arrays mips declare

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

list: .space 20

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

li $a0, numbytes
li $v0, 9
syscall

地址在$v0

中返回