【发布时间】:2017-12-09 16:05:16
【问题描述】:
我想将 A[ ] 的内存地址保存在一个寄存器中,比如 $a0,因为我会将它作为参数传递给一个过程,即使我可以在程序的任何范围内到达 A。
在代码中,我使用sb而不是sw的原因是我在组装时出现了对齐问题。
当我说lb $a0, A 时,它将4 存储到$a0,这是值而不是地址。
.data
A: .space 16
.globl main
main:
# Initialize values in the array
addi $s0, $zero, 4
addi $s1, $zero, 8
addi $s2, $zero, 3
addi $s3, $zero, 5
# This $t0 is just used for indexing while inserting to A
addi $t0, $zero, 0
sb $s0, A($t0)
addi $t0, $t0, 4
sb $s1, A($t0)
addi $t0, $t0, 4
sb $s2, A($t0)
addi $t0, $t0, 4
sb $s3, A($t0)
li $t0, 0
【问题讨论】:
标签: arrays assembly mips memory-address cpu-registers