【问题标题】:Array of variable length in MIPS assembly languageMIPS汇编语言中的可变长度数组
【发布时间】:2012-03-01 14:08:48
【问题描述】:

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

list: .space 20

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

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

【问题讨论】:

    标签: arrays mips declare


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      li $a0, numbytes
      li $v0, 9
      syscall
      

      地址返回$v0

      【讨论】:

      • 谢谢,这也很有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 2021-08-30
      相关资源
      最近更新 更多