Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 什么';s相当于NASM'的气体;默认REL指令?_Assembly_X86 64 - Fatal编程技术网

Assembly 什么';s相当于NASM'的气体;默认REL指令?

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重新编

是否存在与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重新编译

对于YASM,调用DEFAULT REL似乎可以解决这个问题。我不知道怎么用汽油做这个

有什么想法吗

编辑: 似乎可以将move命令写为

movq   m7, [rip+pw_8000]

有人知道这是否正确吗。事实证明这是正确的:


movq m7,[rip+pw_8000]

是的,假设您使用的是英特尔语法,并且已将
m7
定义为寄存器的别名,则这是正确的。