1

我正在尝试使用 Mars 为 MIPS 架构自学组装,并且想知道如何将一系列单词存储到数组中。

我知道如果我有 4 个字,我会像这样分配 16 个字节:

.data
X: .space 16

然后我有几句话:

.data
X:       .space 16
Ryan:    .asciiz "Ryan"
Tammi:   .asciiz "Tammi"
Mike:    .asciiz "Mike"
Jessica: .asciiz "Jessica"

现在,如果我想将 X[0] 分配给 Ryan,X[1] 分配给 Tammi 等,我是否首先将数组地址加载到 $a0,然后将单词加载到临时寄存器中?我不太确定如何将值分配给它们各自的索引,然后将值打印到控制台。

4

1 回答 1

2

如果您不需要在运行时执行此操作,您当然可以直接使用指针初始化数组:

.data
X:       .word Ryan, Tammi, Mike, Jessica
Ryan:    .asciiz "Ryan"
Tammi:   .asciiz "Tammi"
Mike:    .asciiz "Mike"
Jessica: .asciiz "Jessica"

否则,您必须在运行时手动进行分配,例如:

la $t0, X
la $t1, Ryan
sw $t1, ($t0)
la $t1, Tammi
sw $t1, 4($t0)
la $t1, Mike
sw $t1, 8($t0)
la $t1, Jessica
sw $t1, 12($t0)

随后,您可以使用循环打印它们。

于 2015-02-20T22:43:36.843 回答