我有一个关于C的自修改代码的问题,我有一个用C写的程序,我的目标是用自修改代码改变功耗!
我如何用C写自修改代码,在每次运行特定的指令后改变,比如nop。我应该在c中使用函数指针吗?
发布于 2014-01-04 21:00:05
不,在C中没有自修改代码的标准方法,它不受语言的支持。
有一些“hack”,也就是绕过语言的方法,但它们都需要你下降到汇编级,并变戏法,以便覆盖包含代码的内存。缓存、写保护的代码空间等方面都存在问题。
关于函数指针,为了更好地解决这个问题,你唯一知道的就是它们可以被调用。您不能假设指针可以以任何明显的方式转换为指向实际指令的指针,语言不能保证这一点(尽管典型体系结构上的大多数编译器将以“显而易见的方式”实现函数指针)。
https://stackoverflow.com/questions/20926665
复制