2

如果我接受一条指令并将其分解为其操作码、rs、rt 等的二进制表示...然后我可以将此二进制数放入寄存器并让 MIPS 将其视为指令吗?

例如:

指令: add $t0, $s0, $t0

分解为:

000000 10010 01000 01000 00000 100000

对应整数:18696

我可以将此整数存储在寄存器中,然后让 MIPS 将其视为指令吗?

我提出这个问题时考虑到了自我修改代码的想法。

4

1 回答 1

4

正确答案是——。正如一位比我第一次更仔细阅读问题的用户在评论中指出的那样,必须首先将值写入内存,然后加载存储该值的内存的地址值,然后跳转给它。

您可能想了解更多JIT 编译器的工作原理,因为它们使用大量代码修改(需要明确的是,它们不会修改代码生成器,但它们会在执行期间对生成的代码进行大量实时修补)。

于 2011-09-25T21:57:42.040 回答