windows system

calling convention

jianna6 2013. 12. 22. 20:35

공통 : 인자는 스택에 역순으로 push,return 값은 eax에



__stdcall – WIN32 표준

 

인자 스택은 함수가 정리한다.

윈도우 API는 대부분 이 방식을 사용하는 것으로 보인다.


 push 10
push 20
call stdcall_func


※ 명령어 : retn 10h | c2 10 00



 

__cdecl

 

인자 스택은 호출자가 정리한다.

linux system call은 대부분 이 방식을 사용하는 것으로 보인다.

 

 push 1
push 4
call cdecl_func
add esp, 8


※ 명령어 : retn | c3

 

 

 

 

fastcall


첫번째, 두번째 인자만 ecx, edx에 넣고 나머진 스택에..

 

 

 

thiscall

 

c++에서 this 호출시 사용. ecx