在Mars MIPS中将单词存储到数组中

时间:2015-02-20 20:09:46

标签: assembly mips mars-simulator

我正在尝试使用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,然后将这些字加载到临时寄存器中吗?我不太确定如何将值分配给各自的索引,然后将值打印到控制台。

1 个答案:

答案 0 :(得分: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)

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

相关问题