返回引用【3】

来源:互联网 发布:数据有效性校验身份证 编辑:程序博客网 时间:2024/06/06 03:35
--- d:\test\test\main.cpp ------------------------------------------------------     1:      2: #include <stdio.h>     3:      4:      5: int &su_1(int & a_, int b_)     6: {// 下面这一段时准备工作,忽略00411390 55                   push        ebp  00411391 8B EC                mov         ebp,esp  00411393 81 EC C0 00 00 00    sub         esp,0C0h  00411399 53                   push        ebx  0041139A 56                   push        esi  0041139B 57                   push        edi  0041139C 8D BD 40 FF FF FF    lea         edi,[ebp-0C0h]  004113A2 B9 30 00 00 00       mov         ecx,30h  004113A7 B8 CC CC CC CC       mov         eax,0CCCCCCCCh  004113AC F3 AB                rep stos    dword ptr es:[edi]       7:      8: a_=a_+b_;004113AE 8B 45 08             mov         eax,dword ptr [a_]  % 变量a_的地址放入eax004113B1 8B 08                mov         ecx,dword ptr [eax]   % 将eax地址指向的值放入ecx004113B3 03 4D 0C             add         ecx,dword ptr [b_]  % 将b_指向的变量值加到ecx去004113B6 8B 55 08             mov         edx,dword ptr [a_]  % 将遍历a_的地址放入edx004113B9 89 0A                mov         dword ptr [edx],ecx  % 将ecx中相加的结果存入edx地址指向的变量     9: return a_;004113BB 8B 45 08             mov         eax,dword ptr [a_]    % 函数返回:将a_地址输入到eax寄存器中    10: }004113BE 5F                   pop         edi  % 函数结束后的工作004113BF 5E                   pop         esi  004113C0 5B                   pop         ebx  004113C1 8B E5                mov         esp,ebp  004113C3 5D                   pop         ebp  004113C4 C3                   ret  

main函数:

--- d:\test\test\main.cpp ------------------------------------------------------    24:     25: int main()    26: {% 函数开始的准备工作00411460 55                   push        ebp  00411461 8B EC                mov         ebp,esp  00411463 81 EC E4 00 00 00    sub         esp,0E4h  00411469 53                   push        ebx  0041146A 56                   push        esi  0041146B 57                   push        edi  0041146C 8D BD 1C FF FF FF    lea         edi,[ebp-0E4h]  00411472 B9 39 00 00 00       mov         ecx,39h  00411477 B8 CC CC CC CC       mov         eax,0CCCCCCCCh  0041147C F3 AB                rep stos    dword ptr es:[edi]      27: //TYPE a={100,200};    28: //TYPE b={300,400};    29:     30: //TYPE c;    31: //c=su_3(a,b);    32: int a=1;0041147E C7 45 F8 01 00 00 00 mov         dword ptr [a],1  % 变量初始化    33: int b=2;00411485 C7 45 EC 02 00 00 00 mov         dword ptr [b],2  % 变量初始化    34: int c=su_1(a,b);0041148C 8B 45 EC             mov         eax,dword ptr [b]  % b的值进入eax寄存器,然后push0041148F 50                   push        eax  00411490 8D 4D F8             lea         ecx,[a]  % a的地址进入ecx寄存器,然后push00411493 51                   push        ecx  00411494 E8 AC FC FF FF       call        su_1 (411145h)  % 调用函数00411499 83 C4 08             add         esp,8  % 栈平衡0041149C 8B 10                mov         edx,dword ptr [eax]  % eax地址指向的内容拷贝到edx0041149E 89 55 E0             mov         dword ptr [c],edx  % edx的内容拷贝到变量c    35: return 0;004114A1 33 C0                xor         eax,eax  % main函数的返回值为0    36: }004114A3 52                   push        edx  004114A4 8B CD                mov         ecx,ebp  004114A6 50                   push        eax  004114A7 8D 15 C8 14 41 00    lea         edx,[ (4114C8h)]  004114AD E8 CB FB FF FF       call        @ILT+120(@_RTC_CheckStackVars@8) (41107Dh)  004114B2 58                   pop         eax  004114B3 5A                   pop         edx  004114B4 5F                   pop         edi  004114B5 5E                   pop         esi  004114B6 5B                   pop         ebx  004114B7 81 C4 E4 00 00 00    add         esp,0E4h  004114BD 3B EC                cmp         ebp,esp  004114BF E8 6D FC FF FF       call        @ILT+300(__RTC_CheckEsp) (411131h)  004114C4 8B E5                mov         esp,ebp  004114C6 5D                   pop         ebp  004114C7 C3                   ret  004114C8 01                   db          01h  004114C9 00                   db          00h  004114CA 00                   db          00h  004114CB 00                   db          00h  004114CC D0                   db          d0h  004114CD 14                   db          14h  004114CE 41                   db          41h  004114CF 00                   db          00h  004114D0 F8                   db          f8h  004114D1 ??                   db          ffh  004114D2 ??                   db          ffh  004114D3 FF                   db          ffh  004114D4 04                   db          04h  004114D5 00                   db          00h  004114D6 00                   db          00h  004114D7 00                   db          00h  004114D8 DC                   db          dch  004114D9 14                   db          14h  004114DA 41                   db          41h  004114DB 00                   db          00h  004114DC 61                   db          61h  004114DD 00                   db          00h  


原创粉丝点击