能力值:
( LV9,RANK:1410 )
|
-
-
76 楼
50楼跟75楼的老兄说的都对,进栈时,栈顶地址减小,出栈时栈顶地址增加。这个规律可以看TD调试器调试一个程序即可明白。
栈底位于高地址端,栈顶位于低地址端的。
希望大家讨论。另外《深入理解计算机系统》这本书哪里有?俺想研究研究。多谢啦。
|
能力值:
(RANK:330 )
|
-
-
77 楼
这里并没有涉及实际的内存,是对栈的一个初级描述
涉及实际内存后,由于内存有地向高走,你们的理解是对的
我将问题喜欢先从最最简单的讲起,所以用了这个比喻。所谓push的增一,这里指的是栈中的元素增一(扑克牌多放进去一张)
所以如果你们学完后面的章节,这里实际上是没有概念混淆的
你们读的很细致,理解的也很仔细,欢迎这样的质疑。发现问题会我会作为勘误在书中修改的
|
能力值:
( LV2,RANK:10 )
|
-
-
78 楼
虚心听课!不怕拖堂。
|
能力值:
( LV3,RANK:20 )
|
-
-
79 楼
大哥,你真强!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
80 楼
我只是想弱弱的问一句。。。。。。。。。
add xxx, esp ;降低栈顶,回收当前的栈帧
这句话里的汇编,我能否理解为:
xxx加上esp的值,并把相加后的结果保存到xxx里???
|
能力值:
( LV5,RANK:70 )
|
-
-
81 楼
这么好的帖子,学习了再顶,哈哈
|
能力值:
( LV2,RANK:10 )
|
-
-
82 楼
呵呵很精采!
|
能力值:
( LV2,RANK:10 )
|
-
-
83 楼
顶起来慢慢看
|
能力值:
( LV2,RANK:10 )
|
-
-
84 楼
好贴好文,做个记号。
谢谢楼主的课程,很精彩!
|
能力值:
( LV4,RANK:50 )
|
-
-
85 楼
顶!!!
教程通俗易懂!!1
|
能力值:
( LV2,RANK:10 )
|
-
-
86 楼
大哥,你真强!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
87 楼
精彩,禁不住顶!
|
能力值:
( LV10,RANK:170 )
|
-
-
88 楼
听完第二节了,一个字 爽,接着去听第三节,呵呵
|
能力值:
( LV10,RANK:170 )
|
-
-
89 楼
80楼理解错误,应该是ESP加XXX,改变的是ESP,XXX是当前栈帧
的大小,它的作用是释放当前的栈帧
|
能力值:
( LV2,RANK:10 )
|
-
-
90 楼
我也发现了31楼兄弟所提出的问题,是图画错了,还是我没理解透?
“对于__stdcall调用约定,函数调用时用到的指令序列大致如下:
;调用前
push 参数3 ; 假设该函数有3个参数,将从右向左依次入栈
push 参数2
push 参数1
call 函数地址 ; call指令将同时完成两项工作:a)向栈中压入当前指令在内存中的位置, ; 即保存返回地址;b)跳转到所调用函数的入口地址
........
上面这段用于函数调用的指令在栈中引起的变化如下图所示:”
图中的参数入栈是不是应该这样:
....
arg1
arg2
arg3
......
|
能力值:
( LV2,RANK:10 )
|
-
-
91 楼
图7、图8中的参数顺序是不是弄错了阿,我感觉应该是反的才对啊
|
能力值:
( LV3,RANK:30 )
|
-
-
92 楼
看了以后,还是不由得感叹,要是教科书都能写成这样那就好了.
|
能力值:
( LV9,RANK:410 )
|
-
-
93 楼
图文并茂,这是好。谢谢LZ
|
能力值:
( LV2,RANK:10 )
|
-
-
94 楼
真的非常感谢,不顶不行
|
能力值:
( LV2,RANK:10 )
|
-
-
95 楼
听君一席话,胜读十年书
|
能力值:
( LV2,RANK:10 )
|
-
-
96 楼
感谢老师们无私的奉献
|
能力值:
( LV2,RANK:10 )
|
-
-
97 楼
计算机组成原理中也有这方面的讲解,但是很晕!
|
能力值:
( LV2,RANK:10 )
|
-
-
98 楼
讲得很好很明白
可惜来迟了,坐最后一排听课了~~
|
能力值:
( LV4,RANK:50 )
|
-
-
99 楼
先顶再看,太好了,真是太好了。
|
能力值:
( LV2,RANK:10 )
|
-
-
100 楼
很不错的教学文章
|
|
|