これは非常に基本的な質問であることは知っていますが、本当に行き詰まっています。実際、私は 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 で使用されるココア
正しい構文は何ですか?