寄存器大小和指令编码/操作数如何相关?

时间:2013-09-23 19:02:34

标签: cpu cpu-architecture

示例:CPU具有 x 寄存器,指令编码的 y 位用于引用寄存器操作数。一条指令可以指定多少个寄存器操作数?该架构未知。

这是否有通用解决方案?

1 个答案:

答案 0 :(得分:3)

这个问题已经足够概括了 - 你需要编码你希望指令工作的寄存器(以x86为例,mov eax, ebx需要该架构中可用的总寄存器中的2个,{{1需要一个)。

你有x个寄存器,所以你需要log2(x)位来编码它们。由于您只允许y位,因此您可以在单个指令中对最多层(y / log2(x))寄存器进行编码。

(好吧,如果你有空位,你仍然可以使用它们进行部分编码,但这可能不是测试的问题...)