.text
.global main
// code for main
main:
push %r13
push %r14
push %r15
pushq $2
call show
pop %r15
pop %r14
pop %r13
mov $0,%rax
ret
// code for show
show:
popq x
pushq x
popq gen
lea genfmt_(%rip),%rdi
movq gen(%rip),%rsi
.extern printf
call printf
ret
.data
gen: .quad 0
genfmt_: .byte '%','u',10,0
x: .quad 0
タイトルがかなり要約されています。私はなぜこれがセグメンテーションフォールトエラーを生成しているのか分かりません。私が理解したところで、スタックポインタは、r15、r14、r13を押すと整列します。次に、print fを呼び出す前に整列を保ちます。私はアセンブリには新しく、どんな助けもありがとう!セグメンテーションフォルト基本アセンブリ
どの命令が重複していますか?デバッガで実行して参照してください。 ([x86タグwiki](http://stackoverflow.com/tags/x86/info)を参照してください。 –