1

是否可以在 x86-64 中使用此相对寻址执行以下操作?

section .text
two
   dq 0

section .data
one:
   dq two

当我在带有 nasm 的 OS X 上这样做时,我收到以下链接器警告:

ld:警告:PIE 已禁用。在代码签名的 PIE 中不允许使用绝对寻址(可能是 -mdynamic-no-pic),但在 /var/tmp/tmp.1.Ho4qKA 中的一个中使用。要修复此警告,请勿使用 -mdynamic-no-pic 编译或使用 -Wl,-no_pie 链接

4

1 回答 1

-1

照警告说的做。PIE(与位置无关的可执行文件)已启用,这意味着 .text 可以根据系统的喜好重新定位到内存中,而根本不需要修改代码。链接器自动检测到这一点并为您禁用它,因此重定位将照常进行,允许您使用常量地址。

于 2011-09-14T01:53:58.517 回答