■ 함수 호출 규약 종류
→ __cdecl
→ __stdcall
→ __fastcall
→ __thiscall
■ __cdecl(C declaration)
□ 인자 전달 : 오른쪽 → 왼쪽
□ 스택 정리 : 호출한 측에서 인자를 스택에서 꺼냄
■ __stdcall(Standard call)
□ 인자 전달 : 오른쪽 → 왼쪽
□ 스택 정리 : 호출 당한 측에서 스택에서 인자를 꺼냄
■ __fastcall
□ 인자 전달 : 처음 두개의 DWORD 또는 그보다 작은 크기의 인자는 ECX와 EDX 레지스터로 전달, 나머지는 오른쪽 → 왼쪽
□ 스택 정리 : 호출 당한 측에서 스택에서 인자를 꺼냄
■ __thiscall
□ 인자 전달 : 오른쪽 → 왼쪽
□ 스택 정리 : 호출 당한 측에서 스택에서 인자를 꺼냄
□ 특징 : 직접적으로 함수 호출 규약으로 사용할 수 없다, ECX를 통해서 this 포인터를 전달
■ 관련 자료
→ http://www.jiniya.net/lecture/techbox/callconv.html
출처> http://usmemorys.tistory.com/209
'◆ 무한한 가능성 > & Programming' 카테고리의 다른 글
소스코드 컬러링 ( GNU Source-HighLight for Windows ) - c++ 소스 색깔입히기, c++ html (0) | 2009.11.06 |
---|---|
Kernel Memo (0) | 2009.10.27 |
STL, ATL, WTL (0) | 2009.06.08 |
[펌글] Hira Method (소스코드 해석 방법론) - 소스분석 (0) | 2009.01.19 |
프로그래머로서 현업을 어떻게 생각해야 하는지 (0) | 2009.01.16 |