-4

我正在尝试在 MIPS 中实现以下内容

X 是双精度浮点数的二维数组(矩阵),Y 是 32 位整数的二维数组。尝试为以下内容编写代码

Z= (X[i][j] + Y[i][j])

现在我不知道如何在 MIPS 中声明这些数组:

到目前为止,我已经编写了一些主程序,但不知道如何在该.data部分中实现它们

.data

.text
.main:
mtc1 $0, $f0
 cvt.d.w $f0, $f0
  # $a1 is the address of the first element of x
  l.a $r1, $a1
  # $a2 is the address of the first element of y
  l.a $r2, $a2
  addi $r4, $0, 30
  add.d $f8, $f0, $f0
4

1 回答 1

0

二维数组还不错。诀窍是一次处理一个维度。如果你有每个元素的大小和每个维度的大小,那么数学很简单。将行索引(从零开始)、行大小和元素大小(以字节为单位)的乘积添加到您的基地址。这将是您想要的行的基地址。将列索引和元素大小的乘积添加到其中,您就有了元素的地址。

至于数据段,只保留数组的总大小。例如,如果您需要 3x4 的空间,请保留 12 个元素。如果您使用整数, array: .word 0:12 将满足您的需求。

于 2012-08-07T14:32:13.017 回答