我知道这是一个非常基本的问题,但我真的坚持下去。事实上,我绝对是 GCC 语法的新手。
我想在不使用扩展内联汇编的情况下拥有局部变量(带标签的堆栈地址)。类似于 Intel 语法中的以下代码:
DATA1 DB 100
MOV AL, DATA1
这是我猜想可以在 GCC 中替代的代码:
int someFunction(int x)
{
__asm__ volatile(
"function1:"
".data;"
".2byte $4 data1 ;"
".text;"
"pushq %rbp;"
"movq %rsp , %rbp ;"
"movl var , %eax;" // this is source of error
"popq %rbp;"
"leaveq;"
"retq ; "
);
}
但是这段代码会导致这个错误:
未找到体系结构 x86_64 的符号
我可以在 x86 中使用全局变量,但同样的结果出现在 x64 或 x86_x64 中。
设置:LLVM 4.1;Xcode 4 中使用的 Cocoa
什么是正确的语法?