后端错误:64位模式不支持32位绝对寻址

时间:2016-03-07 01:44:20

标签: macos assembly x86-64 intel-syntax

您好我正在使用gcc在Mac上使用ASM intel_syntax noprefix,由于某些原因我在后端遇到错误:64位模式不支持32位绝对寻址 这是否与变量有关,目前在ASM内联使用?

这是我的代码:

adapter = new CustomRAdapter(list, this);

1 个答案:

答案 0 :(得分:4)

是的,正如错误所说,在osx上你不允许使用byte ptr [c]组装的绝对引用。作为解决方法,您可以尝试byte ptr c[rip]

请注意,在内联汇编块中切换语法是非常糟糕的做法,您应该使用-masm=intel编译器开关。此外,gcc内联asm不应该像这样使用,通常你使用约束机制来引用参数。