【发布时间】:2019-10-15 15:40:50
【问题描述】:
在这个答案Segmentation fault on printf - NASM 64bit Linux 中,第一作者说当我分配堆栈时,%rsp 必须保持 16 的倍数加 8,因为之后函数调用会将地址推送到堆栈上,但是在 ABI 中,它说 rsp 必须是 16 的倍数在程序入口中,当我真正尝试时,我发现保持 16 的 rsp 倍数加 8 会导致分段错误,即使之后我调用 printf@PLT,但保持 16 的倍数有效,那么当分配堆栈时我应该为 rsp 做什么?
【问题讨论】:
标签: assembly x86-64 calling-convention