博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Stack(2)

Posted on 2011-03-30 14:12  天地玄黄  阅读(243)  评论(0编辑  收藏  举报

当Linux把程序加载到内存中的时候,Stack中是存储有一些预先的信息的。

Stack存在于内存中0xbfffffff附近,但是不会大于这个值。Stack是底朝上的,ESP指向最外面的元素。

Stack2

       · ESP所指向的最外面的元素是这个程序的参数个数,最少为1。比如运行./test这个程序,这唯一一个参数指的就是test。这是32bits的。

       · 之上一行是一个地址,指向可执行的文件。也是32bits的。

       · 再往上是几个参数的地址。全是32bits的。它们指向的参数是以NULL结尾的字符串。

       · 再往上是一个32bits的0地址,表明参数地址的结束。

       · 再往上(Address of environment variable 1 …)是环境变量参数的地址,有200个之多,比较长。它们表明Linux现在的环境状况。它们指向以NULL结尾的字符串。

       · 再往上是一个32bits的0地址,表明环境变量参数的结束。