Objective-Cコードから呼び出し可能な関数をアセンブリで記述しようとしています。設定して直接返すことで簡単な結果が得られまし%rax
たが、スタックを使用してローカル変数を格納しようとすると、が得られEXC_BAD_ACCESS
ます。誰かがこれを見て、何が悪いのか教えてもらえますか?私のアセンブリは次のようになります。
.global _fn
_fn:
pushq %rbp
movq %rsp, %rbp
subq 0x8, %rsp
addq 0x8, %rsp
popq %rbp
ret
Xcodeはこれをダンプし、次の場所からsub 0x8,%rsp
呼び出したときにクラッシュが発生したことを示します。fn
main
0x0000000100020000 <+0000> push %rbp
0x0000000100020001 <+0001> mov %rsp,%rbp
0x0000000100020004 <+0004> sub 0x8,%rsp
0x000000010002000c <+0012> add 0x8,%rsp
0x0000000100020014 <+0020> pop %rbp
0x0000000100020015 <+0021> retq