能力值:
( LV4,RANK:40 )
|
-
-
26 楼
还好,我找的树较高,继续听
|
能力值:
( LV4,RANK:50 )
|
-
-
27 楼
惟妙惟肖
在后排挺直腰杆继续旁听.
|
能力值:
( LV2,RANK:10 )
|
-
-
28 楼
晕啊,都排到第4排了. 秉烛夜读.
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
作者风趣幽默的写作风格让我十分仰慕 :) 当然,文章更浅显易懂,感谢作者带来如此好的文章
|
能力值:
( LV9,RANK:490 )
|
-
-
30 楼
继续学习~~~
|
能力值:
( LV8,RANK:130 )
|
-
-
31 楼
“对于__stdcall调用约定,函数调用时用到的指令序列大致如下:
;调用前
push 参数3 ; 假设该函数有3个参数,将从右向左依次入栈
push 参数2
push 参数1
call 函数地址 ; call指令将同时完成两项工作:a)向栈中压入当前指令在内存中的位置, ; 即保存返回地址;b)跳转到所调用函数的入口地址
........
上面这段用于函数调用的指令在栈中引起的变化如下图所示:”
图中的参数入栈是不是应该这样:
....
arg1
arg2
arg3
......
不能发图,只能用文字表示了
|
能力值:
( LV2,RANK:10 )
|
-
-
32 楼
楼上的朋友没理解栈的生长规则吧. 栈底位置大,栈顶位置小, 你发的没有指明栈顶和栈底的方向,没法说你对错.
|
能力值:
( LV8,RANK:130 )
|
-
-
33 楼
我是针对这个图来说的
|
能力值:
( LV2,RANK:10 )
|
-
-
34 楼
顶啊~~~~~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
很好!支持!
|
能力值:
( LV2,RANK:10 )
|
-
-
36 楼
感觉讲的不错~~
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
呵呵 非常通俗易懂 建议再推荐一些进阶读物比较好
|
能力值:
( LV2,RANK:10 )
|
-
-
38 楼
[QUOTE=failwest;391651]
还是以C语言和WIN32平台为例,函数返回时的相关的指令序列如下:
add xxx, esp ;降低栈顶,回收当前的栈帧
pop ebp ;将上一个栈帧底部位置恢复到ebp,
retn ;这条指令有两个功能:a)弹出当前栈顶元素,即弹出栈帧中的返回地址。至此 ;栈帧恢复工作完成。b)让处理器跳转到弹出的返回地址,恢复调用前的代码区
[/QUOTE]
请问这里是不是应该为 add esp, xxx ?
|
能力值:
( LV2,RANK:10 )
|
-
-
39 楼
我很喜欢哥哥的讲课风格,有大师的风范,很受学生欢迎
|
能力值:
( LV2,RANK:10 )
|
-
-
40 楼
学习中。
|
能力值:
( LV2,RANK:10 )
|
-
-
41 楼
报告老师,图中的参数入栈示意图,31楼同学发现的,俺也觉得是不是方向画错了. 刚才又精读一遍.
|
能力值:
(RANK:330 )
|
-
-
42 楼
谢谢指出的问题,是我不小心搞错了,示意图和前边的讲解没有完全匹配。幸好还没有最终定稿,可以在出版之前改过来,要不就对不住读者了。
|
能力值:
( LV2,RANK:10 )
|
-
-
43 楼
来晚了,学到第三课了,最近在看<深入理解计算机系统> 这本书,讲的实在是枯燥乏味啊,还是楼猪帅哥讲的生动啊些``,洗洗睡了,明天接着学!
|
能力值:
( LV9,RANK:850 )
|
-
-
44 楼
不顶对不起毛主席
|
能力值:
(RANK:330 )
|
-
-
45 楼
是我的疏忽,谢谢指出。
再发现什么错误欢迎提出啊,现在发现还有得改,可以尽量把错误消灭在书出版之前:)
|
能力值:
( LV6,RANK:90 )
|
-
-
46 楼
楼主 佩服!!
还制作了图片
谢谢了!
|
能力值:
( LV2,RANK:10 )
|
-
-
47 楼
向楼主致敬!
|
能力值:
( LV2,RANK:10 )
|
-
-
48 楼
楼主太伟大了!
|
能力值:
( LV2,RANK:10 )
|
-
-
49 楼
支持,多发表一些这样的文章,以利于大家的提高.
|
能力值:
( LV2,RANK:10 )
|
-
-
50 楼
楼主的文章写的真好,喜欢看这样的东西
TOP:标识栈顶位置,并且是动态变化的。每做一次PUSH操作,它都会自增1;相反每做一次POP操作,它会自减1。栈顶元素相当于扑克牌最上面一张,只有这张牌的花色是当前可以看的。
这里是不是有点小问题,每做一次PUSH操作,栈顶应该是减小的吧
|
|
|