首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MIPS:找出跳转指令代码

问MIPS:找出跳转指令代码
EN

Stack Overflow用户
提问于 2014-06-12 10:39:23
回答 1查看 170关注 0票数 0

我试图弄清楚如何创建一个跳转指令代码,并拥有正确的代码,但我不确定为什么。

所以,如果我有这个:

代码语言:javascript
复制
        addi $s1, $s1, 0 
        addi $s1, $s1, 0
        lui $s1, 0x1001
top:    bne $s1, $s2, end
        addi $s1, $s1, 1
end:    j   top

我想弄清楚j top的跳转指令

正确答案是0x08100003。我只是不知道该怎么做。

top的地址为0x0040000C。

一种简单快捷的方法是计算出x*4=目标地址。因此,x*4=4 (1)和x*4= 12 (3)。所以,我明白为什么指令中有一个1和一个3。

jump的操作码是2hex,所以我们从000010(操作码的6位)开始。那我就不知道下一步该怎么做。我知道指令的末尾是3,但是我怎么知道把1放在哪里呢?

我希望这是有意义的。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-06-12 14:03:42

J的指令字由值为%000010的6位操作码组成,后跟26位,其中包含目标地址的低28位,右移2位。

如果我们取0x040000C,将其右移2位,并以二进制形式显示结果,只有较低的26位才能得到%00000100000000000000000011。

让我们把操作码位放在前面,这样就得到了%00001000000100000000000000000011。如果我们将这个数字分成四位一组,就更容易看到十六进制的表示形式:

代码语言:javascript
复制
0000 1000 0001 0000 0000 0000 0000 0011
 0    8    1    0    0    0    0    3 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24175651

复制
相关文章

相似问题

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