assembly - 在同一机器代码中编码多条指令

标签 assembly encoding memory-efficient space-efficiency

我很好奇以前是否有人这样做过,但不一定具有实用值(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/

相关文章:

performance - 保存左移(SHL)中偏移的位

windows - 如何在DOS下显示汇编中的字符?

assembly - bx lr在ARM汇编语言中做什么?

Python, Unicode解码错误 : 'ascii' codec can't decode byte 0xc2 in position 1718: ordinal not in range(128)

java在内存分配方面的效率比较

c++ - 简单的内核编译问题

读取流时的java编码问题

c++ - 如何使我的线性探测哈希表更高效?

java - 如何在Java中解析包含多个工作表、内存在50MB以内的xls文件

php - 在 PHP 上正确解码双编码 UTF-8