gpt4 book ai didi

c - 如何在 MIPS 汇编中初始化一个巨大的数组?

转载 作者:太空宇宙 更新时间:2023-11-04 06:33:33 24 4
gpt4 key购买 nike

例如,我正在尝试将 C 代码转换为等效的 MIPS:

int a[50];
int i;
...
a[0] = 1;
a[1] = 1;
...

查看 answers 之一, 难道就没有别的办法了吗?:

     .data
array: .word 1,1,...,0 (till the 50th zero)

最佳答案

好吧,我会说你所描述的没有任何问题。但是,显然也可以使用循环来初始化数组。

initTable:

la $t0 table #$t0 stores first address in table
addi $t1 $t0 196 #$t1 stores address of one past end (49 * 4)
addi $t2 $zero 1

intiTableLoop:

sw $t2 0($t0)
addi $t0 $t0 4
blt $t0 $t1 initTableLoop

sw $zero 0($t0)

jr $ra

当然,使用循环是初始化动态分配数组的唯一方法。


我从这里的答案中发现:MIPS Data Directives可以像这样在 mips 中执行此操作:

array: .word 1:49
.word 0

其中冒号后的数字表示应分配给冒号前的值的单词数。这可能就是您正在寻找的。

关于c - 如何在 MIPS 汇编中初始化一个巨大的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17771569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com