好不容易筹了20分,问个函数调用的细节问题,有汇编的。
源代码如下:
//:test.cpp
#include <iostream>
using namespace std;
struct Big{
char buf[100];
long d;
int i;
int a;
float c;
}B,B2;
Big f(Big b)
{
b.i = 100;
return b;
}
int main()
{
B2 = f(B);
system("pause");
}
///:~
--------------------------------------------
如下为B2 = f(B)这句代码的汇编表示:
23: B2 = f(B);
0041B2B4 sub esp,74h
0041B2B7 mov ecx,1Dh
0041B2BC mov esi,offset B (458600h)
0041B2C1 mov edi,esp
0041B2C3 rep movs dword ptr [edi],dword ptr [esi]
0041B2C5 lea eax,[ebp-138h]
0041B2CB push eax
0041B2CC call f (419F19h)
0041B2D1 add esp,78h
0041B2D4 mov ecx,1Dh
0041B2D9 mov esi,eax
0041B2DB lea edi,[ebp-1B4h]
0041B2E1 rep movs dword ptr [edi],dword ptr [esi]
0041B2E3 mov ecx,1Dh
0041B2E8 lea esi,[ebp-1B4h]
0041B2EE mov edi,offset B2 (458678h)
0041B2F3 rep movs dword ptr [edi],dword ptr [esi]
哪位大虾帮忙说明一下上面的汇编的作用好么??注释一下。
等啊!