Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 MIPS 中,我知道我可以将数组声明为:
list: .space 20
但是,如果我想根据用户输入创建一个不同大小的数组怎么办?这可能吗?
例如,程序会要求用户输入一个整数 N 并创建一个长度为 N 的数组。
这是个好问题。在汇编语言中,您所做的声明变量是静态分配的,也就是说它们是在汇编时分配的。如果您想在运行时根据用户输入分配变量,您至少有两种选择:在堆栈上分配空间(并注意堆栈溢出)或从通常称为堆的内存池中分配。在任何一种情况下,分配都是在朗姆酒时间而不是在组装时间完成的。
您可以使用系统调用 9 在堆上分配内存
li $a0, numbytes li $v0, 9 syscall
地址返回$v0
$v0