【发布时间】:2012-03-01 14:08:48
【问题描述】:
在 MIPS 中,我知道我可以将数组声明为:
list: .space 20
但是,如果我想根据用户输入创建一个不同大小的数组怎么办? 这可能吗?
例如,程序会要求用户输入一个整数 N 并创建一个长度为 N 的数组。
【问题讨论】:
在 MIPS 中,我知道我可以将数组声明为:
list: .space 20
但是,如果我想根据用户输入创建一个不同大小的数组怎么办? 这可能吗?
例如,程序会要求用户输入一个整数 N 并创建一个长度为 N 的数组。
【问题讨论】:
这是个好问题。在汇编语言中,你所做的声明变量是静态分配的,也就是说它们是在汇编时分配的。如果您想在运行时根据用户输入分配变量,您至少有两种选择:在堆栈上分配空间(并注意堆栈溢出)或从通常称为堆的内存池中分配。在任何一种情况下,分配都是在朗姆酒时间而不是在组装时间完成的。
【讨论】:
你可以使用系统调用9在堆上分配内存
li $a0, numbytes
li $v0, 9
syscall
地址返回$v0
【讨论】: