mys*_*_go 5 c assembly fpic
据说位置独立码只使用相对位置而不是绝对位置,这又如何在c和汇编中实现?
我们以char test[] = "string";一个例子为例,如何通过相对地址来引用它?
char test[] = "string";
Pot*_*ter 2
在 C 中,位置无关代码是编译器实现的一个细节。请参阅编译器手册以确定是否支持以及如何支持。
在汇编中,与位置无关的代码是指令集架构的一个细节。请参阅 CPU 手册,了解如何读取 PC(程序计数器)寄存器、其效率如何,以及将代码地址转换为数据地址的推荐最佳实践是什么。
由于在大多数现代操作系统上代码和数据被分成不同的页面,因此位置相关数据不太受欢迎。这是实现自包含可执行模块的好方法,但现在最常见的此类东西是病毒。
归档时间:
14 年,7 月 前
查看次数:
1901 次
最近记录: