avatar10010 发表于 2014-10-1 23:49:49

汇编用栈传递参数的一个问题

本帖最后由 avatar10010 于 2014-10-1 23:54 编辑

;;;我的问题已写在汇编程序中的注释中了,望高手答疑解惑!!!!!!!!!!{:1_1:}

/**********c程序************/
int Add(int b)
{
      int t = b+1;
      return t;
}
int main()
{
      int a= 0;
      int c = Add(a);
}

;;;;;;;;;;;对应的汇编程序;;;;;;;;;;;;;;;;
int Add(int b)
{
push      ebp
mov         ebp,esp
sub         esp,0CCh
push      ebx
push      esi
push      edi
lea         edi,
mov         ecx,33h
mov         eax,0CCCCCCCCh
rep stos    dword ptr es:
      int t = b+1;
mov         eax,dword ptr                    ;;;这一句不明白啊,此时变量b都还没被赋值呀,或者说是什么时候将0赋给他的?
add         eax,1
mov         dword ptr ,eax
      return t;
mov         eax,dword ptr
}
pop         edi
pop         esi
pop         ebx
mov         esp,ebp
pop         ebp
ret

int main()
{
      int a= 0;
mov         dword ptr ,0
      int c = Add(a);
mov         eax,dword ptr
push      eax
call      Add (011111EFh)
add         esp,4
mov         dword ptr ,eax
}
......



大个的糖果 发表于 2014-11-1 05:47:13

页: [1]
查看完整版本: 汇编用栈传递参数的一个问题