Wednesday, November 07, 2007

i386体系下Linux系统C语言与汇编的对应关系

1、intel的i386堆栈在入栈时的栈顶寄存器sp是由高地址向低地址增长
2、c语言函数的局部变量,经过查阅汇编代码,实际是通过sp-x来分配,由基指针寄存器bp-n(n为偏移量)来定位存取的
3、main入口的堆栈排列(从高地址到低地址直至SP分别为:char **env, char **argv和int argc以及main的offset)
4、在c语言调用函数时,参数按从右至左的顺序入栈,即最左边的参数在栈顶(SP)

另外,这里是一篇好文章,gazette了不起!对c语言的main函数怎么在linux下面跑起来说得很透彻。

0 comments: