Assembly 什么';s相当于NASM'的气体;默认REL指令?
是否存在与NASM的“默认REL”指令相当的GAS 我正在尝试将一些NASM程序集移植到GAS,特别是,我挂断了原始文件中使用CEXTERN声明的存储 原始NASM:Assembly 什么';s相当于NASM'的气体;默认REL指令?,assembly,x86-64,Assembly,X86 64,是否存在与NASM的“默认REL”指令相当的GAS 我正在尝试将一些NASM程序集移植到GAS,特别是,我挂断了原始文件中使用CEXTERN声明的存储 原始NASM: SECTION .text cextern pw_8000 ... ... movq m7, [pw_8000] 当我组装文件并尝试链接它时,我会看到以下内容: ld:common/x86/dct-a.o:创建共享对象时,不能使用针对“x264_pw_8000”的重新定位R_x86_64_32S;使用-fPIC重新编
SECTION .text
cextern pw_8000
...
...
movq m7, [pw_8000]
当我组装文件并尝试链接它时,我会看到以下内容:
ld:common/x86/dct-a.o:创建共享对象时,不能使用针对“x264_pw_8000”的重新定位R_x86_64_32S;使用-fPIC重新编译
对于YASM,调用DEFAULT REL似乎可以解决这个问题。我不知道怎么用汽油做这个
有什么想法吗
编辑:
似乎可以将move命令写为
movq m7, [rip+pw_8000]
有人知道这是否正确吗。事实证明这是正确的:
movq m7,[rip+pw_8000]是的,假设您使用的是英特尔语法,并且已将
m7
定义为寄存器的别名,则这是正确的。