返回引用【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
- 返回引用【3】
- 返回引用&
- 返回引用
- 返回引用
- 引用返回
- 3、C++中函数返回引用
- PHP 中引用 - 引用返回
- 引用左值(返回引用)
- 引用---引用型返回值
- 返回值和返回引用
- 函数返回值 返回引用
- 值返回与引用返回
- 用引用返回值
- c++ 函数返回引用
- c++函数返回引用
- 函数 返回引用
- c++ 函数返回引用
- 用引用返回值
- 使用JQUERY解决跨域访问
- spring 结合 redis 例子 (转载,以备后用)
- [操作系统实验] Todo - list
- linux vsftpd 550 create directory operation failed解决方法
- 【转】RoBa's blogProgramming, algorithm, and daily lifeRe: 真的ACM很有用么?
- 返回引用【3】
- [RTT例程练习] 4.1 定时器基本使用
- [操作系统实验] Todolist
- Android源码编译整理总结
- WTL入门(2)-- WTL基础 (转)
- 范型编程与STL 第二章 算法与区间
- Linux系统中添加硬盘,分区与格式化
- 程序员技术练级攻略
- 寻找更新过的数据