这可能吗?
我想将英特尔汇编代码放入一个字符缓冲区,然后从 C 程序中执行该代码
如果我将汇编代码放入缓冲区,我可以将它转换为函数指针并调用它吗?
我正在使用 GCC 和 linux
最佳答案
您想执行英特尔汇编代码还是机器代码?如果你想执行机器代码,那么是的,你可以,前提是字符缓冲区所在的内存页没有标记为 NX(不执行)。
如果你在谈论汇编代码,那么不,你首先需要通过汇编器运行代码(在 Un*x 系统上,标准汇编器通常称为 as
;在 Linux 上,这应该与 gas
) 相同,然后运行生成的机器代码。
关于在 C 中的缓冲区中调用程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592228/