您好我正在使用gcc在Mac上使用ASM intel_syntax noprefix,由于某些原因我在后端遇到错误:64位模式不支持32位绝对寻址 这是否与变量有关,目前在ASM内联使用?
这是我的代码:
adapter = new CustomRAdapter(list, this);
答案 0 :(得分:4)
是的,正如错误所说,在osx上你不允许使用byte ptr [c]
组装的绝对引用。作为解决方法,您可以尝试byte ptr c[rip]
。
请注意,在内联汇编块中切换语法是非常糟糕的做法,您应该使用-masm=intel
编译器开关。此外,gcc内联asm不应该像这样使用,通常你使用约束机制来引用参数。