有人可以解释将字符串(数据)放入寄存器的概念吗?我只是想将 .data 中的一行打印到屏幕上。这似乎很容易,但我无法完全理解我在做什么。
这是一些代码:
.data
input: .asciiz "Welcome to class 4"
.text
main:
addi $v0, $0, 4
lui $v0, prompt
lui $a0, $v0
syscall
这是裸露的(如问题所述),所以我没有伪指令。我目前的想法是我正在使用 addi 来替换“li”伪指令。我将 4 添加到寄存器 $v0 中以获得一点偏移量(我不完全确定为什么需要这样做)。TA告诉我这是必要的。然后我将数据加载到 $v0 和从 $v0 到 $a0。然后系统调用打印到控制台。
我做错了什么,我怎样才能更好地理解这些概念?