win32下栈的增长方式

likywind 2007-04-18 06:33:44
在win32下,当调用函数时,所分配的栈空间是向低地址空间增长的,即push ebp
mov ebp,esp
sub esp,.....
也就是说主线程(进程)是处于高地址段的,但是操作系统的运行在低地址段,他为应用程序分配的内存空间也应该是由低地址向高地址增长的,时不时与栈向矛盾!
...全文
343 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bsky01 2007-09-27
  • 打赏
  • 举报
回复
调用一个无限的递归函数会导致“栈溢出”,我曾经遇到过。
likywind 2007-09-25
  • 打赏
  • 举报
回复
win32下如何查看栈的大小呢?
czlyc006 2007-04-20
  • 打赏
  • 举报
回复
不是无限的,有“栈溢出”这么一说
likywind 2007-04-20
  • 打赏
  • 举报
回复
可是在反汇编的c中,代码和栈都是向高地址扩展的,现在我不明白的是,栈是不是可以无限的向下增长!希望回答
LQ20954758 2007-04-18
  • 打赏
  • 举报
回复
堆栈段是向下扩展的,也就是说,每次你的代码段中执行保存数据的操作的时候,要保存的数据是从高位到低位的。栈只是用来保存的读取指令要求的保存或者读取的数据的作用。

执行的指令是放在代码段的,代码段的里面的每一个存储单元存储的是指令和指令操作数。代码段是向上扩展的,也就是说取出线性地址0位置存储单元的内容执行后,有开始取线性地址1的位置的内容出来执行。
所以说不矛盾。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧