__cdecl (C declaration)
함수를 호출한 쪽(Caller)에서 인자를 제거하고 스택을 정리.
가변인자 사용 가능.
__stdcall (standard call)
호출된 쪽(Callee)에서 직접 스택을 정리.
가변인지 사용 불가능. 호출된 함수가 인자의 개수를 알 수 없어서 인자에 대한 스택정리에 오류있음.
__fastcall
호출된 쪽(Callee)에서 직접 스택을 정리.
공통적으로 인자는 우측부터 높은 주소가 전달된다.
ARM은 __cdecl과 __fastcall을 섞어쓴다.
그리고 OS가 호출하는 함수는 되도록이면 __stdcall을 쓰자.
'한국으로 > ARM' 카테고리의 다른 글
정수 승격과 형변환 문제 (0) | 2018.07.22 |
---|---|
다중 메모리 이동: LDM, STM (0) | 2018.07.22 |
AAPCS와 레지스터 테이블 (0) | 2018.07.21 |
ARM의 특수 용도 레지스터 (0) | 2018.07.21 |
volatile이 필요한 경우 (0) | 2018.07.21 |
C Runtime Startup (0) | 2018.07.21 |
어셈블리어로 반복 프로그램 짜기 (0) | 2018.07.21 |
어셈블리어 명령어 (0) | 2018.07.21 |