论坛首页 编程语言技术论坛

传说的this指针

浏览 2739 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-09  
C++
写一个小例子反汇编找找:

class A
{
    public:
        int bb;
        int aa;
        void fun(int _aa){aa = _aa;};
};



A a;
a.bb = 4;    //说明: a的地址就是bb的地址,也是this的值。(注意:地址和值的说法)
a.fun(9);

mov     dword ptr ss:[ebp-8], 4
push    9                                ; 参数1
lea     ecx, dword ptr ss:[ebp-8]      ;隐藏的参数2     this指针 a的地址 bb的地址
call    00401040                       ; fun的地址



fun的汇编:
mov     dword ptr ss:[ebp-4], ecx
mov     eax, dword ptr ss:[ebp-4]  ;传说的this指针终于出现了。呵呵
mov     ecx, dword ptr ss:[ebp+8]  ;参数1    9
mov     dword ptr ds:[eax+4], ecx  ;eax+4  aa 的地址



太晚了。明天还要上班。今天就研究到这里。睡觉了。
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics