在 Mars MIPS 中将单词存储到数组中
Storing words into an array in Mars MIPS
我正在尝试使用 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,然后将这些字加载到临时寄存器?我不太确定如何将值分配给它们各自的索引,然后将这些值打印到控制台。
如果你不需要在运行时做,你当然可以直接用指针初始化你的数组:
.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)
随后您可以使用循环打印它们。
我正在尝试使用 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,然后将这些字加载到临时寄存器?我不太确定如何将值分配给它们各自的索引,然后将这些值打印到控制台。
如果你不需要在运行时做,你当然可以直接用指针初始化你的数组:
.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)
随后您可以使用循环打印它们。