【问题标题】:Instruction Set Encoding指令集编码
【发布时间】:2014-02-17 17:50:51
【问题描述】:

我正在尝试解决这个问题:

您将为具有 32 个寄存器 (R0-R31) 的处理器编码指令集。 算术逻辑指令的格式为:

Ri<-Rj op Rk

并且有 22 位可用于它们的编码。

读写指令的格式为:

Ri<-memory[Rj+offset] (i,j = 0...31)
Ri->memory[Rj+offset] (i,j = 0...31)

并且有 30 位可用于它们的编码。

i) 你可以编码多少个算术逻辑指令? ii) 计算偏移量的最大长度(以位为单位)。

我试图找到解决方案,一直在寻找几个小时,但没有找到任何东西。任何帮助都会很棒!

【问题讨论】:

  • 如果你已经尝试了几个小时,为什么不总结一下你的想法呢?
  • 因为我没有找到任何具体的解决方案或可以提供帮助的东西。

标签: encoding cpu-registers computer-architecture instruction-set


【解决方案1】:

如果您的 ISA 中有 32 个寄存器,那么您就知道每个寄存器说明符占用了多少空间(每个 5 位)。剩余的位可用于指定指令的特定类型(“操作码”)和立即数(“偏移”,在 ld/st 指令的情况下)。

寄存器/寄存器指令需要 3 个说明符,因此是 15 位。剩下的位都可以用来指定指令的类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-13
    • 2014-05-28
    • 2014-05-27
    • 2013-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    相关资源
    最近更新 更多