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

时间:2012-10-24 14:36:15

标签: optimization compiler-construction embedded self-modifying 8-bit

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

我不确定当时是否有任何编译器发出自修改汇编程序或机器代码。

我想知道的是,是否有任何当前/现代编译器。显然,对于具有缓存的强大处理器来说,这将是无用的或太难。

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


有一个类似标题的问题,“Is there any self-improving compiler around? “但请注意,这不是同一主题:

  

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

1 个答案:

答案 0 :(得分:4)

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

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

相关问题