本文以printf为例,详细解析一个简单的printf调用里头,系统究竟做了什么,各寄存器究竟如何变化. 环境: linux + gnu as assembler + ld linker 如何在汇编调用glibc的函数?其实也很简单,根据c convention call的规则,参数反向压栈,call,然后结果保存在eax里头.注意,保存的是地址. 在汇编里头,一切皆地址.(别纠结这个,别告诉我还有立即数……主要是要有一切皆地址的思想) 例如这个printf,在C里头,我们用得很多 int pr…