2012-02-09 153 views
2

在MIPS变长的,我知道我可以声明数组作为:阵列在MIPS汇编语言

list: .space 20 

但是,如果我想创建基于用户输入的不同大小的数组是什么? 这可能吗?

例如,该方案将要求用户输入的整数N和创建长度N.

回答

2

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

2

您可以使用系统调用9堆上

li $a0, numbytes 
li $v0, 9 
syscall 

的地址在$v0

+0

返回分配内存谢谢,这是也有帮助。 – Dan14021 2012-02-10 01:12:08