首页
社区
课程
招聘
[求助]C++反汇编的问题...
发表于: 2011-2-13 14:18 4862

[求助]C++反汇编的问题...

2011-2-13 14:18
4862
004017F0 >/> \55            push ebp
004017F1  |.  8BEC          mov ebp,esp
004017F3  |.  83EC 4C       sub esp,0x4C
004017F6  |.  53            push ebx
004017F7  |.  56            push esi
004017F8  |.  57            push edi
004017F9  |.  8D7D B4       lea edi,[local.19]
004017FC  |.  B9 13000000   mov ecx,0x13
00401801  |.  B8 CCCCCCCC   mov eax,0xCCCCCCCC
00401806  |.  F3:AB         rep stos dword ptr es:[edi]
00401808  |.  6A 06         push 0x6
0040180A  |.  6A 0C         push 0xC
0040180C  |.  68 D0070000   push 0x7D0
00401811  |.  8D4D F4     [COLOR="Red"]  lea ecx,[lebp-0xC][/COLOR]
00401814  |.  E8 C8F8FFFF   call c.004010E1


这个是并没有优化的DEBUG版本的一个c++类调用一个成员函数给类里面的成员赋值的语句..
那句加亮了取地址给ECX的那句代码..为啥取个局部变量的地址去给类成员作访问的地址?
虽然说内部使用 了ECX取得的地址然后给调用的主函数里的开辟的空间地址赋值以方便下面的调用函数使用类里面的成员变量..

开辟空间后,取得空间的首地址然后赋值方便下面的类成员函数使用...
说白了开辟空间自己不使用让函数间接使用..
这就是C++类的特性?
函数1开辟空间->将开辟空间的首地址给ECX
函数2通过ECX使用函数1开辟的空间
函数3也可以使用函数1开辟的空间
就是定位类的话,就是看他们有没有共享使用一段空间地址?
类反汇编学习太复杂了...

晕死了 原本想不通打算问问题的..
谁知道问的过程中..自己把疑惑给解决了..

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
你太强了
2011-2-13 15:03
0
雪    币: 260
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
ECX在类成员函数调用前赋值,还想那么多干嘛,放this指针理所当然啊!
2011-2-13 15:49
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
4
__thiscall,自己查吧……
2011-2-13 15:52
0
游客
登录 | 注册 方可回帖
返回
//