凌云窟
南山巅上火麟烈,北海潜深雪饮寒。可怜两锋未缘见,雪刀封隐孤剑鸣。
<2007年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

留言簿(0)

随笔分类

随笔档案

文章档案

相册

简历下载

搜索

最新评论

阅读排行榜

评论排行榜

 
VC知识库BLOG   首页  新随笔  联系  聚合  登录 
  随笔-22 文章-0 评论-38 Trackbacks-0
     所谓满递减堆栈是指堆栈通过减小存储器的地址向下增长,堆栈指针指向内含有效数据项的最低地址。空递减堆栈是指堆栈通过减小存储器的地址向下增长,堆栈指针指向堆栈下的第一个空位置。
     那么x86是属于那一种呢?
     结论是x86的堆栈是满递减堆栈。

     我们经常遇到的堆栈操作就是函数调用时需要将函数的参数入栈,因此在调用函数的地方设置一个断点,然后查看汇编代码:

     这里Hello函数有一个默认值为9的参数.

在00401078这行代码执行后停住,然后打开vc的registers可以看到目前esp的值,这是一个内存地址。然后在Memory里面查看esp所值的内存的值,结果是刚好是9.


posted on 2007-07-14 23:17 莫问春秋 阅读(3715) 评论(2)  编辑 收藏
Comments
  • # re: x86是满递减堆栈还是空递减堆栈?
    windowssky
    Posted @ 2007-07-16 09:03
    x8086汇编基础课程中的push/pop,有详细介绍。。。。
    注:debug/release下的对应汇编有的存在差异(eg:switch/call),用release中的listfile输出.asm文件~
  • # re: x86是满递减堆栈还是空递减堆栈?
    maggie
    Posted @ 2007-09-03 15:39
    vc资料站:http://www.vcmsdn.com/     对学习很有帮助的,可以上去

    看看,或加群46138350,里面有高手可以请教的。
标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]