MIPS中的内存地址越界错误
我使用了下面的代码来打印hello world消息,但是当运行时,会弹出一个错误消息“内存地址超出范围”。为什么会发生这种情况MIPS中的内存地址越界错误,mips,Mips,我使用了下面的代码来打印hello world消息,但是当运行时,会弹出一个错误消息“内存地址超出范围”。为什么会发生这种情况 .text main: la $v0, hello_msg li $v0, 4 syscall #Data storage .data hello_msg : .asciiz "Hello World\n\n" la和li都加载到$v0。在第一种情况下,您的意思是$a0?谢谢$a0工作得非常好。为什么我们不能像加载整数那样加载文本时使用$v0呢?如果你真的
.text
main:
la $v0, hello_msg
li $v0, 4
syscall
#Data storage
.data
hello_msg : .asciiz "Hello World\n\n"
la
和li
都加载到$v0
。在第一种情况下,您的意思是$a0
?谢谢$a0工作得非常好。为什么我们不能像加载整数那样加载文本时使用$v0呢?如果你真的想用它做点什么的话,你可以这样做$v0
在指向hello\u msg
的地址后立即被覆盖为值4
。在任何情况下,“服务4”都希望$a0
指向要打印的文本。而syscall
指令本身期望$v0
指向有效的服务编号(4
)。我将其用作参考(请注意,我对MIPS没有任何经验)。