zhang 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
代码如下:
该代码运行中主要涉及以下寄存器ebp(指向栈底),esp(指向栈顶),eax(存放返回值),eip(指向运行代码)
接下来按运行顺序来分析(假定ebp,esp开始指向0,并将堆栈每隔32位从高到底依次命名为1,2,3...)
pushl %ebp 在1位置存入ebp地址0,esp指向1
movl %esp, %ebp 使ebp指向esp指向地址(1)
subl $4, %esp esp指向2
movl $8, (%esp) 在2位置存入8
call f