在MIPS中,我知道我可以将数组声明为:
list: .space 20
但是,如果我想根据用户输入创建不同大小的数组呢? 这可能吗?
例如,程序会要求用户输入一个整数N并创建一个长度为N的数组。
答案 0 :(得分:2)
这是一个很好的问题。在汇编语言中,声明为已完成的变量是静态分配的,即它们是在汇编时分配的。如果要在运行时根据用户输入分配变量,则至少有两个选择:在堆栈上分配空间(并注意堆栈溢出)或从内存池(通常称为堆)进行分配。在任何一种情况下,分配都是在朗姆酒时间而不是在汇编时完成的。
答案 1 :(得分:2)
您可以使用系统调用9在堆上分配内存
li $a0, numbytes
li $v0, 9
syscall
地址在$v0