程序集启动功能 x86-64



在函数的开头有这样的结构:

0x7ffff7e47a10: test   $0xf,%spl
0x7ffff7e47a14: je     0x7ffff7e47a1b
0x7ffff7e47a1a: int3 

如果标志不中断,0xfspl的目的是什么? 是不是像"堆栈一切都好"?

这将检查堆栈是否与 16 个字节对齐,如果不是,则中止程序。 如果堆栈对齐到 16 个字节,至少 4 位%rsp和扩展%spl是清晰的。这就是test $0xf,%spl测试的目的。

最新更新