指令集编码

时间:2014-01-27 01:25:13

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

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

您将为具有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)以位为单位计算偏移量的最大长度。

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

1 个答案:

答案 0 :(得分:1)

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

寄存器/寄存器指令需要3个说明符,因此它是15位。其余的位都可以指定指令的类型。