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