如果我获取一条指令并将其分解为其操作码、rs、rt 等的二进制表示形式...然后我可以将此二进制数放入寄存器中并让 MIPS 将其视为指令吗?
例如:
指令:添加$t0,$s0,$t0
分割为:
000000 10010 01000 01000 00000 100000
对应的整数:18696
我可以将这个整数存储在寄存器中,然后让 MIPS 将其视为指令吗?
我问这个问题是出于 self 修改代码的想法。
最佳答案
正确答案是 - 否。正如一位比我第一次更仔细地阅读问题的用户在评论中指出的那样,必须首先将该值写入内存,然后加载存储该值的内存的地址值,然后跳转到它。
您可能想了解更多如何JIT compilers工作,因为他们使用了大量的代码修改(需要明确的是,他们不修改代码生成器,但他们在执行过程中对生成的代码进行了大量的实时修补)。
关于mips - 我可以将存储在寄存器中的数字作为 MIPS 中的指令来执行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7540674/