【发布时间】:2013-09-23 19:02:33
【问题描述】:
示例:CPU 有 x 个寄存器,指令编码的 y 位用于引用寄存器操作数。一条指令可以指定多少个寄存器操作数?架构未知。
有没有通用的解决方案?
【问题讨论】:
标签: cpu cpu-architecture
示例:CPU 有 x 个寄存器,指令编码的 y 位用于引用寄存器操作数。一条指令可以指定多少个寄存器操作数?架构未知。
有没有通用的解决方案?
【问题讨论】:
标签: cpu cpu-architecture
这个问题已经很笼统了——你需要对你希望指令处理的寄存器进行编码(以 x86 为例,mov eax, ebx 需要该架构中可用的总寄存器中的 2 个,inc ecx 需要一个)。
您有 x 个寄存器,因此您需要 log2(x) 位来对每个寄存器进行编码。由于您只允许使用 y 位,并且您最多可以在一条指令中对 floor(y/log2(x)) 寄存器进行编码。
(好吧,如果你有多余的位,你仍然可以使用它们来对某些东西进行部分编码,但这可能不是问题所要测试的......)
【讨论】: