首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带实数指令助记符的伪指令

带实数指令助记符的伪指令
EN

Stack Overflow用户
提问于 2015-02-24 22:49:17
回答 1查看 281关注 0票数 0

str9.data节中分配的字节的标签,这个字节的地址是0x1001_58e4。确定将由此伪指令生成的机器代码

lbu $t1, str9

我不明白为什么这是一个伪指令,为什么0x1001_58e4不能简单地用给定的指令加载到$t1探地雷达。有谁能给我解释一下为什么这在这种情况下不起作用。在处理这种情况时,汇编程序会做什么真正的指令?当我找到真正的指令时,我知道如何将指令转换成机器代码,但我只是不理解需要真正的指令,正如我的教授所说的,需要将指令分解为2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-24 23:22:47

你试过把这个变成一条指令吗?你成功了吗?)

提示:地址本身是一个32位值(0x1001_58e4),mips指令是32位,所以如果您想对其进行编码,那么操作码和目标寄存器就没有位置了。

所以,你需要在2条指令中完成。首先,将地址的前16位加载到$t1中,然后使用真正的lbu将低16位作为对前16位的偏移:

代码语言:javascript
复制
lui $t1, 0x1001
lbu $t1, 0x58e4($t1)

在处理这种情况时,汇编程序会做什么真正的指令?

你总是可以简单地组装和拆卸:

代码语言:javascript
复制
Disassembly of section .text:

00000000 <.text>:
   0:   3c091001        lui     t1,0x1001
   4:   912958e4        lbu     t1,22756(t1)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28707910

复制
相关文章

相似问题

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