所以,我是学习大会的新手,对于汇编等方面的记忆工作非常困惑。
我收到了以下代码:
.global main
.text
format_input: .asciz "%ld"
main:
subq $8, %rsp
leaq -8(%rbp), %rsi
movq $format_input, %rdi
movq $0, %rax
call scanf
movq %rsp, %rdi
call printf
end:
movq $0, %rax
call exit
我想在这里做的是输入一个数字并输出相同的数字。但在这里,我已经遇到了问题。如果我输入数字,我会收到Segmentation fault
。如果我输入一个字符,就像字母a
一样,它运行时没有任何错误?它只输出任何东西。
我在这里做错了什么?