mips - 我可以将存储在寄存器中的数字作为 MIPS 中的指令来执行吗?

标签 mips self-modifying

如果我获取一条指令并将其分解为其操作码、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/

相关文章:

optimization - 是否有用于在简单处理器上生成自修改代码的高级语言的现代编译器?

assembly - 从 MIPS 程序集中的用户输入读取文件名

mips - 内存地址和寄存器地址是如何联系的?(AddrConstant MIPS指令)

assembly - MIPS 程序集 - 随机整数范围

python - 有没有办法在 Python 中对函数的每一行进行修饰/执行操作?

java - Java中的自修改代码

c++ - 自修改代码 [C++]

language-agnostic - 是否有任何 self 改进的编译器?

assembly - MIPS中的div divu

mips - PC一般运行什么类型的机器语言