从给定地址读取内存-MIPS

从给定地址读取内存-MIPS,mips,Mips,我是MIPS的新手,所以我对一些事情感到困惑。我的问题是,是否在程序首次编译时输入了一个值,并且该值是存储在标签中的地址(0x10010040)。如何访问存储在标签中的地址而不是标签的实际地址 .data input: .asciiz prompt: .asciiz "Enter the address " prompt2: .asciiz "Filling some memory aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbcccccccccccc

我是MIPS的新手,所以我对一些事情感到困惑。我的问题是,是否在程序首次编译时输入了一个值,并且该值是存储在标签中的地址(0x10010040)。如何访问存储在标签中的地址而不是标签的实际地址

.data 
input: 
.asciiz 
prompt: 
.asciiz "Enter the address  " 
prompt2:
.asciiz "Filling some memory aaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbcccccccccccc


.text                  
.globl main  

main:

li $v0, 4
la $a0, prompt
syscall

li $v0, 8 
li $a1, 32
la $a0, input
syscall

在这条路上被困太久了。我试着用lw而不是la,胡闹了一下,结果只是出错了。使用地址0x10010040应指向165061482。但它只是指向输入所在的地址,即0x1001000。我知道这是因为我正在加载输入的地址,而不是将输入的值作为地址加载,这是我的问题所在。

标签不存储任何内容,只有引用某个地址的带有名称的常量。我猜你的意思是如何获取存储在某个地址的数据,然后将其用作地址。就像C中的双指针


为此,您将
lw
从地址(标签处)将数据放入寄存器(我们称之为
a
),然后再次使用
lw
和a作为
src
,使用第二个
lw
检索的数据就是您想要的数据。

显示相关代码。