我正在尝试解决这个练习:
您将为具有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)计算偏移量的最大长度。
我试着寻找解决方案,找了几个小时,但什么也没找到。任何帮助都是很棒的!
发布于 2014-02-21 20:30:30
如果您的ISA中有32个寄存器,那么您就知道每个寄存器说明符占用了多少空间(每个寄存器说明符5位)。剩余的位可用于指定特定类型的指令(“操作码”)和立即数(在ld/st指令的情况下为“偏移”)。
寄存器/寄存器指令需要3个说明符,所以这是15位。剩余的位可以全部用于指定指令的类型。
https://stackoverflow.com/questions/21371577
复制相似问题