1

我正在尝试创建一个数组,然后根据需要更新某些单元格的值。据我所知,使用堆栈框架将是最好的方法,但我无法让它工作。谁能指出我正确的方向?

谢谢!

4

1 回答 1

2

您应该已经很好地理解了数组操作在 C 之类的语言中是如何工作的。

如果您想将一个数组放入当前堆栈帧,并在那里对其进行操作(并了解这样做的好处和问题),那么您应该执行以下操作:

  1. $sp首先,记下堆栈指针寄存器 ( )的当前值。您将使用它作为指向数组开头的指针。将其存储在另一个寄存器中。
  2. 首先将堆栈指针寄存器 ( $sp) 增加数组的字节数。这将为您提供足够的工作空间。
  3. 当你想更新数组时,计算数组的开始地址加上数组索引。例如,要写入或读取元素 5,请将 5 添加到数组的开头,乘以字长。在 32 位机器上,将其乘以 4。
  4. 使用该sw指令将一个字存储在该地址的数组中,并用于lw加载一个字。
于 2011-02-11T05:49:33.233 回答