C++反組譯碼九(全域變數與局部變數)

來源:互聯網
上載者:User
00401020   push        ebp00401021   mov         ebp,esp00401023   sub         esp,44h00401026   push        ebx00401027   push        esi00401028   push        edi00401029   lea         edi,[ebp-44h]0040102C   mov         ecx,11h00401031   mov         eax,0CCCCCCCCh00401036   rep stos    dword ptr [edi]// 初始化10:       int x=10;00401038   mov         dword ptr [ebp-4],0Ah//局部變數ebp-4賦值0xA(10)11:       static int y=x;0040103F   xor         eax,eax00401041   mov         al,[`variant'::`2'::$S1 (00427c58)]// 全域變數初始化標誌放入al(8位一個位元組)00401046   and         eax,1// 取全域變數初始化標誌的最後一個位元組00401049   test        eax,eax// 比較0040104B   jne         variant+45h (00401065)// 已經初始化,則跳過初始化過程0040104D   mov         cl,byte ptr [`variant'::`2'::$S1 (00427c58)]00401053   or          cl,100401056   mov         byte ptr [`variant'::`2'::$S1 (00427c58)],cl// 沒有初始化,則將初始化標誌置位0040105C   mov         edx,dword ptr [ebp-4]0040105F   mov         dword ptr [__cfltcvt_tab+0AB4h (00427c54)],edx// 初始化標誌置位後,將局部變數的值賦值給全域變數12:       static int z=g_x;00401065   xor         eax,eax00401067   mov         al,[`variant'::`2'::$S1 (00427c58)]// 全域變數初始化標誌放入al(8位,一個位元組)0040106C   and         eax,2// 取全域變數初始化標誌的第二個位元組,即第二個全域變數的初始化標誌0040106F   test        eax,eax// 判斷00401071   jne         variant+6Eh (0040108e)// 已經被初始化,則直接跳出00401073   mov         cl,byte ptr [`variant'::`2'::$S1 (00427c58)]00401079   or          cl,20040107C   mov         byte ptr [`variant'::`2'::$S1 (00427c58)],cl// 否則將初始化標誌置位00401082   mov         edx,dword ptr [g_x (00424a30)]// 全域變數放edx00401088   mov         dword ptr [__cfltcvt_tab+0AB0h (00427c50)],edx// 全域變數放到全域靜態變數中13:   }0040108E   pop         edi0040108F   pop         esi00401090   pop         ebx00401091   mov         esp,ebp00401093   pop         ebp00401094   ret

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.