程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 從匯編看c++中的虛擬繼承及內存布局(二)

從匯編看c++中的虛擬繼承及內存布局(二)

編輯:C++入門知識

 Top {
= << () <<  Left :   jj, =    Right :   kk, =    Bottom :  Left,  ll,  jj,  kk, =<< () <<     , , , * bp = &
    Left* lp = lleft = lp-> ltop = lp->
    Right* rp = rright = rp-> rtop = rp->
    Top* tp = ttop =tp->
     btop = bp-> bleft = bp-> bright = bp-> bbottom = bp->


        esp,                     



        
        
        
        
        
        ecx, DWORD PTR _b$[ebp]
        ??0Bottom@@QAE@HHHH@Z            



        eax, DWORD PTR _b$[ebp]
        DWORD PTR _bp$[ebp], eax



        ecx, DWORD PTR _bp$[ebp]
        DWORD PTR _lp$[ebp], ecx



        edx, DWORD PTR _lp$[ebp]
        eax, DWORD PTR [edx]
        ecx, DWORD PTR _lp$[ebp]
        edx, DWORD PTR [eax]
        edx
        DWORD PTR _lleft$[ebp], eax



        eax, DWORD PTR _lp$[ebp]
        ecx, DWORD PTR [eax+]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR _lp$[ebp]
        ecx, DWORD PTR [eax+]
        eax, DWORD PTR [ecx+]
        ecx, DWORD PTR _lp$[ebp]
        ecx, DWORD PTR [ecx+eax+]
                                  
        eax, DWORD PTR _lp$[ebp]
        edx, DWORD PTR [eax+edx+]
                                  
                                  
        eax, DWORD PTR [edx]
        eax
        DWORD PTR _ltop$[ebp], eax



        DWORD PTR _bp$[ebp], 
        SHORT $LN3@main
        ecx, DWORD PTR _bp$[ebp]
        ecx,                     
        DWORD PTR tv133[ebp], ecx
        SHORT $LN4@main
$
        DWORD PTR tv133[ebp], 
$
        edx, DWORD PTR tv133[ebp]
        DWORD PTR _rp$[ebp], edx
                                
                                
                                
                                



        eax, DWORD PTR _rp$[ebp]
        edx, DWORD PTR [eax]
        ecx, DWORD PTR _rp$[ebp]
        eax, DWORD PTR [edx]
        eax
        DWORD PTR _rright$[ebp], eax



        ecx, DWORD PTR _rp$[ebp]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR [edx+]
        ecx, DWORD PTR _rp$[ebp]
        edx, DWORD PTR [ecx+]
        ecx, DWORD PTR [edx+]
        edx, DWORD PTR _rp$[ebp]
        ecx, DWORD PTR [edx+ecx+]
                                  
        edx, DWORD PTR _rp$[ebp]
        eax, DWORD PTR [edx+eax+]
                                  
                                  
        edx, DWORD PTR [eax]
        edx
        DWORD PTR _rtop$[ebp], eax



        DWORD PTR _bp$[ebp], 
        SHORT $LN5@main
        DWORD PTR tv170[ebp], 
        SHORT $LN6@main
$
        eax, DWORD PTR _bp$[ebp]
        ecx, DWORD PTR [eax+]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR _bp$[ebp]
        ecx, DWORD PTR [eax+edx+]
                                  
        DWORD PTR tv170[ebp], ecx
$
        edx, DWORD PTR tv170[ebp]
        DWORD PTR _tp$[ebp], edx
                                



        eax, DWORD PTR _tp$[ebp]
        edx, DWORD PTR [eax]
        ecx, DWORD PTR _tp$[ebp]
        eax, DWORD PTR [edx]
        eax
        DWORD PTR _ttop$[ebp], eax
    
    ;75
ecx, DWORD PTR _bp$[ebp] edx, DWORD PTR [ecx+] eax, DWORD PTR [edx+] ecx, DWORD PTR _bp$[ebp] edx, DWORD PTR [ecx+] ecx, DWORD PTR [edx+] edx, DWORD PTR _bp$[ebp] ecx, DWORD PTR [edx+ecx+] edx, DWORD PTR _bp$[ebp] eax, DWORD PTR [edx+eax+] edx, DWORD PTR [eax] edx DWORD PTR _btop$[ebp], eax eax, DWORD PTR _bp$[ebp] edx, DWORD PTR [eax] ecx, DWORD PTR _bp$[ebp] eax, DWORD PTR [edx] eax DWORD PTR _bleft$[ebp], eax ecx, DWORD PTR _bp$[ebp] ecx, edx, DWORD PTR _bp$[ebp] eax, DWORD PTR [edx+] edx, DWORD PTR [eax] edx DWORD PTR _bright$[ebp], eax eax, DWORD PTR _bp$[ebp] edx, DWORD PTR [eax] ecx, DWORD PTR _bp$[ebp] eax, DWORD PTR [edx+] eax DWORD PTR _bbottom$[ebp], eax

??0Bottom@@QAE@HHHH@Z PROC                



        ecx
        DWORD PTR _this$[ebp], ecx
        DWORD PTR _$initVBases$[ebp], 
        SHORT $LN1@Bottom
        eax, DWORD PTR _this$[ebp]
        DWORD PTR [eax+], OFFSET ??_8Bottom@@7BLeft@@@
                                                       
        ecx, DWORD PTR _this$[ebp]
        DWORD PTR [ecx+], OFFSET ??_8Bottom@@7BRight@@@
                                                         
        edx, DWORD PTR _ii$[ebp]
        edx
        ecx, DWORD PTR _this$[ebp]
        ecx,                     
        ??0Top@@QAE@H@Z                
$
        
        eax, DWORD PTR _ii$[ebp]
        eax
        ecx, DWORD PTR _jj$[ebp]
        ecx
        ecx, DWORD PTR _this$[ebp]
        ??0Left@@QAE@HH@Z            
        
        edx, DWORD PTR _ii$[ebp]
        edx
        eax, DWORD PTR _kk$[ebp]
        eax
        ecx, DWORD PTR _this$[ebp]
        ecx,                     
        ??0Right@@QAE@HH@Z            
        ecx, DWORD PTR _this$[ebp]
        DWORD PTR [ecx], OFFSET ??_7Bottom@@6BLeft@@@
        edx, DWORD PTR _this$[ebp]
        DWORD PTR [edx+], OFFSET ??_7Bottom@@6BRight@@@
                                                         
        eax, DWORD PTR _this$[ebp]
        ecx, DWORD PTR [eax+]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR _this$[ebp]
        DWORD PTR [eax+edx+], OFFSET ??_7Bottom@@6BTop@@@
                                                          
                                                          
        ecx, DWORD PTR _this$[ebp]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR [edx+]
        eax,                     
        ecx, DWORD PTR _this$[ebp]
        edx, DWORD PTR [ecx+]
        ecx, DWORD PTR [edx+]
        edx, DWORD PTR _this$[ebp]
        DWORD PTR [edx+ecx], eax
                                
                                



        eax, DWORD PTR _this$[ebp]
        ecx, DWORD PTR _ll$[ebp]
        DWORD PTR [eax+], ecx



                            
??0Bottom@@QAE@HHHH@Z ENDP                


??0Left@@QAE@HH@Z PROC                    



        ecx
        DWORD PTR _this$[ebp], ecx
        DWORD PTR _$initVBases$[ebp], 
                                       
        SHORT $LN1@Left
        eax, DWORD PTR _this$[ebp]
        DWORD PTR [eax+], OFFSET ??_8Left@@7B@
        ecx, DWORD PTR _ii$[ebp]
        ecx
        ecx, DWORD PTR _this$[ebp]
        ecx,                     
        ??0Top@@QAE@H@Z                
$
        edx, DWORD PTR _this$[ebp]
        DWORD PTR [edx], OFFSET ??_7Left@@6B0@@
        eax, DWORD PTR _this$[ebp]
        ecx, DWORD PTR [eax+]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR _this$[ebp]
        DWORD PTR [eax+edx+], OFFSET ??_7Left@@6BTop@@@
                                                        
                                                        
        ecx, DWORD PTR _this$[ebp]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR [edx+]
        eax,                     
        ecx, DWORD PTR _this$[ebp]
        edx, DWORD PTR [ecx+]
        ecx, DWORD PTR [edx+]
        edx, DWORD PTR _this$[ebp]
        DWORD PTR [edx+ecx], eax
                                
                                



        eax, DWORD PTR _this$[ebp]
        ecx, DWORD PTR _jj$[ebp]
        DWORD PTR [eax+], ecx



                            
??0Left@@QAE@HH@Z ENDP                    

??0Right@@QAE@HH@Z PROC                    



        ecx
        DWORD PTR _this$[ebp], ecx
        DWORD PTR _$initVBases$[ebp], 
        SHORT $LN1@Right
        eax, DWORD PTR _this$[ebp]
        DWORD PTR [eax+], OFFSET ??_8Right@@7B@
        ecx, DWORD PTR _ii$[ebp]
        ecx
        ecx, DWORD PTR _this$[ebp]
        ecx,                     
        ??0Top@@QAE@H@Z                
$
        edx, DWORD PTR _this$[ebp]
        DWORD PTR [edx], OFFSET ??_7Right@@6B0@@
        eax, DWORD PTR _this$[ebp]
        ecx, DWORD PTR [eax+]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR _this$[ebp]
        DWORD PTR [eax+edx+], OFFSET ??_7Right@@6BTop@@@
                                                         
                                                         
        ecx, DWORD PTR _this$[ebp]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR [edx+]
        eax,                     
        ecx, DWORD PTR _this$[ebp]
        edx, DWORD PTR [ecx+]
        ecx, DWORD PTR [edx+]
        edx, DWORD PTR _this$[ebp]
        DWORD PTR [edx+ecx], eax
                                 



        eax, DWORD PTR _this$[ebp]
        ecx, DWORD PTR _kk$[ebp]
        DWORD PTR [eax+], ecx



                            
??0Right@@QAE@HH@Z ENDP                    

??0Top@@QAE@H@Z PROC                    



        ecx
        DWORD PTR _this$[ebp], ecx
        eax, DWORD PTR _this$[ebp]
        DWORD PTR [eax], OFFSET ??_7Top@@6B@



        ecx, DWORD PTR _this$[ebp]
        edx, DWORD PTR _ii$[ebp]
        DWORD PTR [ecx+], edx



        


 


        ecx, DWORD PTR _bp$[ebp]
        edx, DWORD PTR [ecx+]
        eax, DWORD PTR [edx+]
        ecx, DWORD PTR _bp$[ebp]
        edx, DWORD PTR [ecx+]
        ecx, DWORD PTR [edx+]
        edx, DWORD PTR _bp$[ebp]
        ecx, DWORD PTR [edx+ecx+]
                                  
        edx, DWORD PTR _bp$[ebp]
        eax, DWORD PTR [edx+eax+]
                                  
        edx, DWORD PTR [eax]
        edx
        DWORD PTR _btop$[ebp], eax

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved