我很好奇以前是否有人这样做过,但不一定具有实用值(value)(尽管空间效率的提高是显而易见的)。是否曾在同一机器代码中编码多条指令?例如:
(这完全是编造的)
0xAEA2 -> 添加 R3 0xA2
0xEAE6 -> mov R1 0xE6
0xAAAA ...
向左移动一个半字节重新解释机器码变成:
0xEA2E -> mov R1 0x2E
0xAE5A -> 添加 R3 0x5A
最佳答案
在 Smalltalk 78(所有现代 Smalltalk 方言的前身之一)的实现中,有一个双字节store argument 0 字节码,其第二个字节是load argument 0 .通过这种方式,跳转到存储指令开头的代码执行存储,同时跳转到它的 中间 (!) 导致加载。您可以在 Reviving Smalltalk-78 - Bert Freudenberg - IWST 2014 中了解更多相关信息-大约 30 分钟-
关于assembly - 在同一机器代码中编码多条指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27569074/