天天看點

c語言調用約定與底層彙編調用約定:

ret:将eip的值傳回到esp中

調用約定:

fastcall 前兩個參數放入ecx,edx,後面參數從右往左依次入棧,被調用者棧平衡

stdcall 參數從右往左依次入棧,被調用者棧平衡

thiscall

cdecl 參數從右往左依次入棧,調用者棧平衡;add esp,xxx:棧平衡

c語言調用約定與底層彙編調用約定:

stdcall是被調用者棧平衡,是以在func2裡面add esp,棧平衡

棧是每個線程都必須擁有的空間,是一個記憶體

char類型和short類型參數都是以4位元組入棧存儲的,不夠就補,但是printf中會提升到八個位元組

不寫調用約定預設是__cdecl調用約定 調用者:調用函數的函數