首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汇编中J型指令的目标地址编码(MIPS)

汇编中J型指令的目标地址编码(MIPS)
EN

Stack Overflow用户
提问于 2017-04-22 23:26:59
回答 1查看 1.3K关注 0票数 1

根据我的课堂笔记,在MIPS中,跳转指令的编码对于操作码是6位,对于目标地址是26位。但是地址是32位,那么地址的哪一部分被遗漏了呢?考虑一个j指令(6位上的操作码2 -> 000010 )和目标地址0x00400024 -> 0000 0000 0100 0000 0000 0000 0010 0100。最终的编码应该是0x08100009,我真的不明白目标地址是如何编码的

EN

回答 1

Stack Overflow用户

发布于 2019-01-15 09:29:14

将分支延迟时隙( PC+4 )中的最高地址4比特与编码的J类型指令左移的26位instr_index字段相结合,解码MIPS中的绝对32位跳目标地址。(正如@jester所指出的,这是因为所有跳转目标地址都必须对齐4字节。)

要编码跳转目标,您需要目标地址的低28位,并向右移动2位。

代码语言:javascript
复制
// Decoding a jump target.
TARGET := ((PC+4) & 0xF0000000) | (INSTR_INDEX << 2);

// Encoding a target.
INSTR_INDEX := (TARGET & 0x0FFFFFFF) >> 2;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43565715

复制
相关文章

相似问题

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