c - 我如何影响函数的地址?

标签 c assembly

是否有一种方法可以影响、设置或定义函数的(相对)地址?也许链接描述文件有任何可能性来确保函数 abc() 始终驻留在 OFFSET+0x0034C0(只是一个例子)。 我想以某种方式“控制”内存中函数的位置,以使这些位置某种参数化。 目前我正在寻找一种在我的 x86 上使用 gcc 的方法。然而,真正的应用程序应该运行在嵌入式设备上。

问候

最佳答案

你或许可以使用 linker script magic 来做到这一点使用 gcc,是的。看看如何定义section placement ,然后将指令放入您的源代码中,以将函数放入您选择的部分。

但完全不确定这是否适用于 x86 机器,因为操作系统可能有……异议。这更适合直接嵌入使用。

在完整操作系统上控制代码位置的是什么?

关于c - 我如何影响函数的地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14730462/

相关文章:

c - 我怎样才能让 g_dbus_connection_signal_subscribe 函数告诉我预先存在的对象/接口(interface)?

c - 在 C 项目中共享 "Char * "

c - 在C中打印二维矩阵

c - GCC/x86 内联汇编 : How do you tell gcc that inline assembly section will modify %esp?

将 C 代码转换为汇编代码

assembly - 如何在Y86-64(或其他具有ADD + AND但没有 native 右移的玩具ISA)中执行右移

c - GCC编译不同文件夹中的多个文件

c - 标准C库中缓冲区大小的特殊宏是什么?

c++ - 函数地址不是实际的代码地址

linux - 换行字节 0Ah 被 x86_64 系统调用打印程序忽略