首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从$s0地址加载时在MIPS中出错

从$s0地址加载时在MIPS中出错
EN

Stack Overflow用户
提问于 2015-04-30 16:22:05
回答 2查看 2.1K关注 0票数 0

从任何以s开头的内存地址加载都有问题。我可以正确地从t寄存器加载,但当我运行

代码语言:javascript
代码运行次数:0
运行
复制
li $v0, 4
lw $t0, $s0
lw $a0, $t0
syscall

我得到的错误是:操作数太少或格式不正确。预期: lw $t1,-100($t2)

有一些东西存储在$s0中,所以有人能解释一下我调用这个地址的方法有什么问题吗?

EN

回答 2

Stack Overflow用户

发布于 2015-05-01 03:09:44

Do:lw $t0, 0($s0) lw $a0, 0($t0)

而不是。

请记住,当您使用sw和lw时,需要给出一个偏移量。

票数 3
EN

Stack Overflow用户

发布于 2015-05-02 23:04:00

您的问题并不完全是任何以s开头的内存地址。这两行的问题是相同的:

代码语言:javascript
代码运行次数:0
运行
复制
lw $t0, $s0
lw $a0, $t0

但是当米普斯发现第一个错误时,他停止了。

要使用lwsw,您必须遵循一种格式,一种约定:

代码语言:javascript
代码运行次数:0
运行
复制
lw  $rt, offset($rs)

其中,$rt是您要在其中加载值的寄存器,该值位于内存位置,其结果是将包含$rs的值与offset相加。

有关这方面的更多信息,请阅读this

这是必需的,因为内存远远高于可以保存每个寄存器的值(16位、32位或64位,取决于您的MIPS),所以如果没有offset,您几乎什么都不能寻址。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29962608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档