首页 文章

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

提问于
浏览
2

回到缓存和分支预测之前的日子,如果不鼓励为某些类型的优化制作自修改代码,则相对常见 . 这可能是在8位到32位之前的汇编程序中使用汇编编写的游戏和演示中最常见的,例如Amiga .

我不确定那些日子里是否有任何编译器发出自修改汇编程序或机器代码 .

我想知道的是,是否有任何当前/现代编译器 . 显然,在具有缓存的强大处理器上它将是无用的或太难 .

但是如嵌入式系统中使用的那么多简单处理器呢?对于任何简单/ 8位/嵌入式处理器,任何现代编译器都将自修改代码视为可行的优化策略吗?


有一个类似 Headers 的问题,“是否有任何自我改进的编译器?”,但请注意,它不是关于同一主题:

请注意,我所说的是一个能够改进自身的编译器 - 而不是一个能够改进编译代码的编译器 .

1 回答

  • 4

    目前所有嵌入式系统都使用闪存ROM . 我相信Amiga和类似的是基于RAM的系统 . 嵌入式系统中存在“自我修改”的唯一方法是使用引导加载程序,根据应使用的程序和/或功能重新编程闪存的某些部分 .

    除此之外,程序在运行时修改自身没有意义 . 出于安全原因(由于错误导致意外修改的可能性)和出于电气原因(RAM易变且对EMC比闪存更敏感),通常不鼓励从RAM运行代码 .

相关问题