如果我接受一条指令并将其分解为其操作码的二进制表示,rs,rt等...然后我可以将这个二进制数放入寄存器并获得MIPS将其视为指令吗?
例如:
说明: add $t0, $s0, $t0
分解为:
000000 10010 01000 01000 00000 100000
对应于整数:18696
我可以将这个整数存储在寄存器中,然后获取MIPS将其视为指令吗?
我想到了自我修改代码的想法。
答案 0 :(得分:4)
正确答案是 - 否。正如在第一次更仔细地阅读问题的用户的评论中指出的那样,必须首先将值写入内存,然后加载存储该值的内存的地址值,然后跳转它。
您可能希望更多地了解JIT compilers如何工作,因为他们使用了大量的代码修改(要清楚,他们不会修改代码生成器,但是他们会对生成的代码进行大量实时修补在执行期间)。