【发布时间】:2020-04-03 08:16:41
【问题描述】:
我是 MIPS 的新手,对一个概念感到困惑。
我有一个值5 存储在$s5 中,我想将它复制到$a0 以便我可以使用li $v0, 1 打印它。我有两种复制方式。
-
addi $a0, $s5, 0 la $a0, 0($s5)
如果我在其后执行li $v0, 1 / syscall (MARS's print-integer syscall),则 1. 或 2. 都可以打印值 5。
但为什么它适用于 2.? 2.将$s5的地址存储在$a0,但我们需要一个值,而不是地址。
这会由 print_integer 自动处理吗?
【问题讨论】:
-
相关:MIPS: Copy address of register to another register(令人困惑的问题,因为寄存器没有内存地址。)