这是代码
我尝试插入subq $ 8。 %rsp在调用printf @ PLT之前,它运行良好。但是我想知道为什么会这样吗? (我使用gcc进行编译)
.text
.section .rodata
.LC0:
.string "%d\n"
.text
.globl main
.type main, @function
main:
pushq %rbp
movq %rsp, %rbp
subq $8, %rsp
movq $5,-8(%rbp)
leaq .LC0(%rip),%rdi
movq -8(%rbp),%rsi
call printf@PLT
leave
ret
我希望输出5,但它是分段错误(核心已转储)