vc6.0 Debug方式下 //_c调用方式 void add(int a,int b) { int c = a + b } 6: void add(int a,int b) 7: { //保存ebp,并让ebp代替esp 因为ebp稳定 00401010 push ebp 00401011 mov ebp,esp //为变量预留空间0x44 00401013 sub esp,44h //保存程序中使用到的寄存器 00401016 push ebx 00401017 push esi 00401018 push edi //将局部变量初始化为0xcc /* while(ecx) { mov dword ptr [edi],eax edi = edi + 4 } */ 00401019 lea edi,[ebp-44h] 0040101C mov ecx,11h //计数器 00401021 mov eax,0CCCCCCCCh 00401026 rep stos dword ptr [edi] //mov dword ptr[edi],eax将edi=edi+4,知道ecx=0 8: int c = a + b; 00401028 mov eax,dword ptr [ebp+8] //ebp+8 = 一参地址,ebp+0xc = 二参地址,ebp + 4 = 函数返回地址 0040102B add eax,dword ptr [ebp+0Ch] 0040102E mov dword ptr [ebp-4],eax 9: } //恢复寄存器 00401031 pop edi 00401032 pop esi 00401033 pop ebx //恢复esp,ebp 00401034 mov esp,ebp 00401036 pop ebp //pop xx jmp xx 00401037 ret