日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 從匯編學習c++ 之 類的方法調用

從匯編學習c++ 之 類的方法調用

來源:程序員人生   發布時間:2015-06-11 08:52:46 閱讀次數:2655次

src(debug vesion by vs2008 sp1 on xp sp3)

#include<iostream>
using namespace std;

class SimpleClass{
public:
    int x;
    void HelloWorld(){
        printf("hello,mao");
    }
};

int main(int argc,char **argv)
{
    SimpleClass myclass;
    myclass.HelloWorld();
    return 0;
}

反匯編后的結構

--- c:vc6myprojectsvsclasstestvsclasstestingome.cpp ----------------------
 1: #include<iostream>
 2: using namespace std;
 3: 
 4: class SimpleClass{
 5: public:
 6:     int x;
 7:     void HelloWorld(){
00411440  push ebp  
00411441  mov ebp,esp 
00411443  sub esp,0CCh 
00411449  push ebx  
0041144A  push esi  
0041144B  push edi  
0041144C  push ecx  
0041144D  lea edi,[ebp-0CCh] 
00411453  mov ecx,33h 
00411458  mov eax,0CCCCCCCCh 
0041145D  rep stos dword ptr es:[edi]  //將局部變量空間全部初始化為0xcc (0x33*4=CC)
(store to string addr edi by dword,repeat time is ecx,filled-word is eax.)
0041145F  pop ecx  
00411460  mov dword ptr [ebp⑻],ecx    //ebp⑻處是個變量,寄存當前類實例的地址,那末,我們的x去了哪里呢。
---類中的變量不是函數中的局部變量,方法棧空間大小和類成員數目沒有關系。
 8:         printf("hello,mao");
00411463  mov esi,esp 
00411465  push offset string "hello,mao" (415800h) 
0041146A  call dword ptr [__imp__printf (4182BCh)] //從導入表中取得地址,導入表iat在4182BCh處
00411470  add esp,4 
00411473  cmp esi,esp 
00411475  call @ILT+310(__RTC_CheckEsp) (41113Bh) 
 9:     }
0041147A  pop edi  
0041147B  pop esi  
0041147C  pop ebx  
0041147D  add esp,0CCh 
00411483  cmp ebp,esp 
00411485  call @ILT+310(__RTC_CheckEsp) (41113Bh) 
0041148A  mov esp,ebp 
0041148C  pop ebp  
0041148D  ret  

main函數部份

17:     SimpleClass myclass;
18:     myclass.HelloWorld();
 004113CE  lea ecx,[myclass] 
 004113D1  callSimpleClass::HelloWorld (41114Ah) 
19:     return 0;
 004113D6  xor eax,eax 

從圖中可以看出來,履行類中方法的時候,會先取出實例化類的地址(ecx= myclass),也就是說編譯器讓類的內部方法實現的時候已引入了隱藏變量實例化的類指針

類中的變量不是類方法中的變量,類方法訪問類中變量是通過ecx作為隱藏參數傳入的,所以類方法中沒有分配空間寄存類成員。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 激情欧美一区 | 久久久综合精品 | 国产98在线 | 日韩 | 99色综合 | 99精品在线观看 | 日韩精品极品视频在线观看免费 | 91视频久久 | 亚洲一区二区三区免费观看 | 国产真实乱偷精品视频免 | 国产一区二区精品久久 | 国产精品三级在线看 | 最新黄色免费网站 | 国产成人精品免高潮在线观看 | 久久久综合精品 | 在线观看国产 | 一区二区三区视频 | 欧美二区视频 | 91福利区 | 成人国产精品视频 | 国产精品18久久久久久久网站 | 国产一区二区免费看 | 欧美99视频 | 一区二区免费 | 国产一区二区在线视频播放 | 日韩大逼 | 夜噜噜久久国产欧美日韩精品 | 黄色大片在线 | 国产一区视频在线 | 二区三区在线观看 | 亚洲第一页在线 | 黄色网址在线免费 | 久久久久久久久久一区二区三区 | 成人av电影网站 | 国产日产久久高清欧美一区 | 欧美字幕一区 | 国产在线播放一区二区 | 最近中文字幕一区二区 | 毛片免费不卡 | 成人黄色大全 | 99精品在线看 | 日本不卡中文字幕 |