阅读背景:

从汇编和底层的角度看c和类c语言

来源:互联网 


   从源代码的分析可知,每一个函数的作用域相当于一个创建的栈,其内部的变量存入各自的栈中,调用一个函数只是将eip即cpu指令寄存器的值指向被调用函数的内存空间的开头然后将该调用语句的下一句地址压栈,且调用函数的栈顶是被调用函数的栈底,图类似于我上面给的超链接处的内容的图,只不过现在的内核为了安全舍弃了将参数压栈的这种调用方式而是通过寄存器esi,edi传递,想想也是,这样做防止了以前用类似strcpy()函数的缺陷而造成的缓冲区溢出。,调用一



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: