このコードは、ターミナルでGCCを使用して正常にアセンブルされます。
.globl _sub
_sub:
push %rbp
mov %rbp,%rsp
mov $0xBEEF,%eax
pop %rbp
ret
.globl _main
_main:
push %rbp
mov %rbp,%rsp
call _sub
mov $0,%eax
pop %rbp
ret
しかし、a.outファイルを実行すると、次のエラーが発生します。
Segmentation fault: 11
GDBで実行すると、次のエラーが発生します。
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000001
0x0000000000000001 in ?? ()
なぜこれが起こっているのかについてのアイデアはありますか?