태그>함수호출규약(총 14개의 글)
'함수호출규약' 관련 최근글
-
- [Arm프로세서] AAPCS: Armv8: C 코드 최적화 -..

-
Arm Linux Kernel Hacks by AustinKim|2021/09/01 11:33
6.4 절에서 Armv7 아키텍처에서 다룬 AAPCS는 실무에 적용할 만한 실용적인 내용이 많다고 설명했습니다. Armv8 아키텍처의 AAPCS도 마찬가지입니다. 이번 절에서는 Armv8 아키텍처의 AAPCS에서 성능 ..
- [Arm프로세서] AAPCS: Armv8: C 코드 최적화 -..
-
- [Arm프로세서] AAPCS: Armv8: 함수를 호출할 때..

-
Arm Linux Kernel Hacks by AustinKim|2021/08/31 08:54
SP 레지스터, X30 레지스터와 더불어 눈여겨봐야 할 레지스터가 X0-X7 레지스터입니다.함수를 호출할 때 전달되는 인자는 X0-X7 레지스터에 저장되고, 함수가 반환하는 값은 X0 레지스터로 저장되기 때문입..
- [Arm프로세서] AAPCS: Armv8: 함수를 호출할 때..
-
- [Arm프로세서] AAPCS: Armv8: X30 링크 레지스..

-
Arm Linux Kernel Hacks by AustinKim|2021/08/30 09:03
SP 레지스터보다 링크 레지스터인 X30은 '함수 호출'에서 가장 중요한 역할을 수행합니다. 함수를 호출한 다음에 복귀할 주소를 X30 레지스터가 저장하기 때문입니다. 우리가 함수를 작성하면 어디선가 함수를 ..
- [Arm프로세서] AAPCS: Armv8: X30 링크 레지스..
-
- [Arm프로세서] AAPCS: Armv8: SP(스택 포인..

-
Arm Linux Kernel Hacks by AustinKim|2021/08/29 22:25
SP는 스택 포인터(Stack Pointer) 레지스터라고 하는데, Armv8 아키텍처에서는 SP_ELn로 표기합니다. SP_ELn 레지스터와 익셉션 레벨 6장에서는 SP은 프로세스의 스택 공간 내에서 업데이트된다고 ..
- [Arm프로세서] AAPCS: Armv8: SP(스택 포인..
-
- [Arm프로세서] AAPCS: Armv8: AAPCS와 관련..

-
Arm Linux Kernel Hacks by AustinKim|2021/08/29 22:24
지금까지 AAPCS와 관련된 레지스터인 SP_ELn, X30 그리고 X0-X7 레지스터에 대해 알아봤습니다. 또한 서브 루틴을 호출할 때 실행되는 어셈블리 명령어를 소개했습니다. 이번 절에서는 어셈블리 명령어를..
- [Arm프로세서] AAPCS: Armv8: AAPCS와 관련..
-
- [Arm프로세서] AAPCS: Armv8: 브랜치와 복귀 ..

-
Arm Linux Kernel Hacks by AustinKim|2021/08/28 09:33
마지막으로 AAPCS와 연관된 명령어로 RET 에 대해 알아봅시다. 다음은 Arm 스팩 문서에서 명시된 RET 명령어에 대한 내용입니다. C6.2.219 RET Return from subroutine branches unconditionally to..
- [Arm프로세서] AAPCS: Armv8: 브랜치와 복귀 ..
-
- [Arm프로세서] AAPCS: Armv8: 브랜치와 복귀 ..

-
Arm Linux Kernel Hacks by AustinKim|2021/08/14 23:41
Arm 스팩 문서를 보면서 BL 명령어에 대해 알아봅시다. C6.2.33 BLBranch with Link branches to a PC-relative offset, setting the register X30 to PC+4. It provides a hint that this is a subro..
- [Arm프로세서] AAPCS: Armv8: 브랜치와 복귀 ..
-
- [Arm프로세서] AAPCS: Armv8: 스택과 관련된 ..

-
Arm Linux Kernel Hacks by AustinKim|2021/08/12 07:17
Armv7 아키텍처에서 push 명령어를 실행한 후 함수가 종료되기 직전에 반드시 실행되는 명령어가 pop입니다. 마찬가지로 Armv8 아키텍처에서 stp 명령어를 사용해 스택에 레지스터를 푸시한 후, 함수를 종..
- [Arm프로세서] AAPCS: Armv8: 스택과 관련된 ..
-
- [Arm프로세서] AAPCS: Armv8: 스택과 관련된 ..

-
Arm Linux Kernel Hacks by AustinKim|2021/08/02 09:02
sub는 지정된 상수만큼 감소시키는 연산을 수행하는 명령어인데, stp 명령어 전 후로 'sub sp, sp, #16'와 같이 SP 레지스터의 값을 감소시키는 명령어를 볼 수 있습니다. 이 동작은 Armv7 아키텍처에서 ..
- [Arm프로세서] AAPCS: Armv8: 스택과 관련된 ..
-
- [Arm프로세서] AAPCS: Armv8: C 코드 최적화 -..

-
Arm Linux Kernel Hacks by AustinKim|2021/06/06 09:29
이번 장에서 서브 루틴을 호출하면 다음과 같은 동작을 수행한다고 배웠습니다. * X0-X7 레지스터에 함수의 인자를 저장 * 서브 루틴은 stp, ldp 명령어를 사용해 링크 레지스터를 백업 * 서브 루틴에서 반환하는..
- [Arm프로세서] AAPCS: Armv8: C 코드 최적화 -..
-
- [Arm프로세서] AAPCS: Armv7: push 명령어

-
Arm Linux Kernel Hacks by AustinKim|2021/06/01 07:20
SP 레지스터와 프로세스의 스택이 변경될 때 실행되는 명령어는 push와 pop입니다. 각 명령어의 의미를 알아보고, 예제 코드를 분석하겠습니다. 먼저 Arm 스팩 문서에서 push 명령어를 어떻게 설명하는지..
- [Arm프로세서] AAPCS: Armv7: push 명령어
-
- [ARM프로세서] 함수 호출 규약(Calling Conv..

-
ARM Linux Kernel Hacks by AustinKim|2020/09/28 07:14
호출 규약(Calling Convention)이란 무엇일까요? 어떤 함수를 호출했을 때 서브 루틴이 자신을 호출하는 함수로부터 인자를 어떤 방식으로 받아 결과를 반환하는지에 대한 규약입니다. x86, RISC-V와 같은..
- [ARM프로세서] 함수 호출 규약(Calling Conv..
-
- [ARM프로세서] 함수 호출 규약을 잘 알아야 하는..

-
ARM Linux Kernel Hacks by AustinKim|2019/07/17 20:34
많은 개발자들이 함수 호출 규약을 아키텍처를 구성하는 기능 중 일부분이라 여깁니다. 함수 호출 규약과 관련된 내용을 지나가듯이 읽으면서 넘어가는 경우가 많습니다. 하지만, 실무에서는 함수 호출 규약과 ..
- [ARM프로세서] 함수 호출 규약을 잘 알아야 하는..
-
- 함수 호출 규약과 AAPCS

-
일본행 새우잡이 어선 by 고스|2009/06/23 17:35
ARM/ Thumb PCS - 레지스터 사용법 히언님 이글루에서 트랙백 합니다. 얼마전에 API디자인 해서 보냈더니 중국친구들이 return값 타입을 전부 unsigned char나unsigned short로 해달라고 하는 겁니다. RAM용량 줄이고 싶다고. -_-;;;;;; 필요에 의해 unsinged int이..
- 함수 호출 규약과 AAPCS



