首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最高内存传输

最高内存传输
EN

Stack Overflow用户
提问于 2021-06-15 08:25:05
回答 1查看 37关注 0票数 0

假设跳转指令位于内存地址0x20CE88C0。这个跳转可以转移控制的最高(即最大)32位内存地址是什么?我知道最高地址可以是2^26,但我看到其他人说的是2^28。我不明白这有什么区别。为什么是2^28?

EN

回答 1

Stack Overflow用户

发布于 2021-06-15 09:27:46

J-Type指令非常简单:

代码语言:javascript
复制
opcode  target
   6      26              // field size, as bit count

代码语言:javascript
复制
target := instruction[25:0]
JumpAddr := { PC+4[31:28], target, 2'b0 }
PC := JumpAddr

这是MIPS Green Sheet / Quick Reference数据中的描述。虽然这是一个有点有趣的符号(某种RTL),但它通过告诉我们处理器如何解码J型指令,告诉我们需要了解跳转指令的可能范围。

这就是说,当前PC+4提供新PC地址的高4位。然后地址字段(有时称为immediate,也称为target )提供下一个26位,然后00是下一个PC的下2位,总共32位值。

因此,有了这些信息,您可以计算或形成从给定PC. 可以到达的最大可能地址。取PC+4的前4位,然后(串/连接到这4位上) 26位的最大值-它的26位无符号,因此26个1都是最大值-然后连接00 (两个零位),并从给定的PC开始从j/jal获得最大可寻址位置的确切地址的32位值。

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

https://stackoverflow.com/questions/67978553

复制
相关文章

相似问题

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