top of page

함수 호출 규약

# 함수 호출 규약(Calling Convention)

- 함수(Caller)와 함수(Calle)간의 약속

- 파라메터를 어떤 방법으로 전달할 것인가?

- 사용한 파라메터를 누가 정리할 것인가?

- 규약의 종류는 _cdecl, _stdcall, _fastcall이 있음

 

# _cdecl

- CALLER 함수에서 스택을 정리

- 주로 C 라이브러리 함수에서 사용하는 규약

- 파라메터 정리 방법은 CALLEE에서 리턴 후에 ADD ESP, XX형태로 진행

 

# _stdcall

- CALLEE 함수에서 스택을 정리

- 주로 API 함수에서 사용하는 규약

- 파라메터 전달 매체 : Stack을 사용 (PUSH XX)

 

# _fastcall

- 함수 호출시 빠르게 호출하기 위해 사용하는 규약 (단 매개변수 2개 이하)

- 파라메터가 2개 이하인 경우 ECX와 EDX를 사용해서 속도가 빠름

- 파라메터가 3개 이상인 경우 stack을 사용함

- 파라메터 전달 매체 : ECX, EDX, Stack

- 파라메터 정리 : RETN XX

 RECENT POSTS: 
 SEARCH BY TAGS: 
  • Facebook B&W
bottom of page