gpt4 book ai didi

assembly - 将地址存储在 MIPS 的寄存器中

转载 作者:行者123 更新时间:2023-12-02 18:59:46 24 4
gpt4 key购买 nike

我已经分配了一定量的内存,并希望将此内存的位置分配给我在程序的 .data 部分中声明的变量。我知道如何将内存位置分配给变量,但是一旦我这样做了,如何使用该变量来访问分配的内存?

最佳答案

如果我正确理解您的问题,您将需要使用la(加载地址)指令将地址获取到寄存器中。然后,您将使用lw(加载字)和sw(存储字)指令来操作数据。例如,考虑下面的代码

.data
tmpval: .word 5

__start:
sub $sp, $sp, 12
sw $ra, 0($sp) # Return addy
sw $t0, 4($sp)
sw $t1, 8($sp)

la $t0, tmpval
lw $t1, 0($t0) # $t1 == tmpval == 5
li $t1, $2 # $t1 == 2
sw $t1, 0($t0) # tmpval == 2

lw $ra, 0($sp)
lw $t0, 4($sp)
lw $t1, 8($sp)
add $sp, $sp, 12
jr $ra

因此,在代码的内部 block 中,您可以看到将 $t0 (或任何其他与此相关的寄存器)视为内存位置并适本地使用它。

关于assembly - 将地址存储在 MIPS 的寄存器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10324691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com