MIPS将数组的地址保存到变量

时间:2013-11-18 00:02:04

标签: arrays mips memory-address

.data

    Stackarray: .word 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 
    TopStack: .word 0
    BottomStack: .word 0

.text

    la $s0, Stackarray  # stores the beginning of array into $s0
    la $a1, 4($s0)      # stores address of second element of array into $a1
    sw $a1, TopStack

TopStack应该保存一个地址的值,但是当我打印TopStack时,它会出现一个巨大的数字:“268500996”。 我只是想验证TopStack是否保存数组第二个元素的地址值。真实值应为“10010004”

1 个答案:

答案 0 :(得分:0)

为什么你认为“真正的价值”是1001004?

我在代码的末尾添加了以下内容

#print data in TopStack
lw $a0, TopStack
li $v0, 1
syscall

#new line
li $a0, 10
li $v0, 11
syscall

#print address of Stackarray
la $a0, Stackarray
li $v0, 1
syscall

我得到了:

268500996
268500992

所以一切都与我相符。