编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

关于堆栈的问题?

关于堆栈的问题?

1.PE文件说明里(PE头偏移60H)说的线程初始堆栈是不是程序中用于分配局部变量,参数传递用的栈呢?说保留大小是0x100000,系统会在程序运行时修改它的大小吗?如果这个大小是固定的即便是退出较好的递归调用不是也很容易就溢出么,才1M啊!2G的地址空间就只能让堆用?
2.它和进程的缺省堆(这里又是"堆"了,是我在一本书上讲WINDOWS内存管理时看到的)是一会事么,说这个堆是WIN32函数使用的,缺省值也是1M,把我搞糊涂了.
3.书上多用"堆栈"这个词,那到底是指堆呢还是栈呢?我感觉堆是可以随机分配的,哪里有地方就分配到哪里,栈不是应该保持地址连续么,要不然PUSH,POP能找到正确的地址么?程序的堆栈该怎么理解呢?

请帮帮我,谢谢!

TOP

堆栈是一个后进先出FILO(或说先进后出FILO)的主存区域,位于堆栈段中;SS段寄存器记录其段地址
堆栈只有一个出口,即当前栈顶;用堆栈指针寄存器SP指定
堆栈只有两种基本操作:进栈和出栈,对应两条指令PUSHPOP

TOP

去看堆栈段

TOP

用椎栈时,出栈时,sp的指针改变,椎栈内的内容为什么会被清除呢.

TOP

小弟,今天也刚看到push,pop,

TOP

发新话题