태그>arm(총 451개의 글)
'arm' 관련 최근글
-
- [Arm프로세서] AAPCS: Armv7: 매우 자주 호출되..

-
Arm Linux Kernel Hacks by AustinKim|2021/07/13 06:37
이번 장에서 서브 루틴을 호출하면 다음과 같은 동작을 수행한다고 배웠습니다. * R0~R3 레지스터에 함수의 인자를 저장 * 서브 루틴은 push와 pop 명령어를 사용해 링크 레지스터를 백업 * 서브 루틴에서 반환..
- [Arm프로세서] AAPCS: Armv7: 매우 자주 호출되..
-
- [Arm프로세서] AAPCS: Armv7: 함수 반환형은 워..

-
Arm Linux Kernel Hacks by AustinKim|2021/07/06 06:21
함수를 반환하는 자료형은 워드 단위로 제한하는 것이 좋습니다. 워드형인 경우 반환값은 R0 레지스터에 저장하나, 데이터가 워드 범위를 벗어난 경우 R0와 R1레지스터에 반환값을 나눠서 처리하기 때문입니다...
- [Arm프로세서] AAPCS: Armv7: 함수 반환형은 워..
-
- [Arm프로세서] AAPCS: Armv7: 함수 인자의 갯수..

-
Arm Linux Kernel Hacks by AustinKim|2021/07/06 06:21
함수에 전달되는 인자는 4개 이하로 제한하는 것이 좋습니다. 함수의 인자의 갯수가 5개를 넘어가면, 프로세스의 스택 공간에 인자를 저장해 전달하기 때문입니다. 이번에는 함수에 5개의 인자를 전달하는 예제 ..
- [Arm프로세서] AAPCS: Armv7: 함수 인자의 갯수..
-
- [Arm프로세서] AAPCS: Armv7: AAPCS와 C 코..

-
Arm Linux Kernel Hacks by AustinKim|2021/06/29 08:06
이제까지 다룬 Armv7 아키텍처에서 정의된 AAPCS를 배우고 나면 자연스럽게 다음과 같은 의문이 생길 가능성이 높습니다. "AAPCS와 관련된 내용을 실무에 어떻게 활용할 수 있을까?" 이번 장의 ..
- [Arm프로세서] AAPCS: Armv7: AAPCS와 C 코..
-
- [Arm프로세서] AAPCS: Armv7: 함수를 호출할 때..

-
Arm Linux Kernel Hacks by AustinKim|2021/06/25 06:55
SP 레지스터, LR 레지스터(R14)와 더불어 눈여겨봐야 할 레지스터가 R0 ~ R3 레지스터입니다.함수를 호출할 때 전달되는 인자는 R0 ~ R3 레지스터에 저장되고, 함수가 반환하는 값은 R0 레지스터로 저장되..
- [Arm프로세서] AAPCS: Armv7: 함수를 호출할 때..
-
- [Arm프로세서] AAPCS: Armv7: SP(스택 포인..

-
Arm Linux Kernel Hacks by AustinKim|2021/06/16 07:01
SP는 스택 포인터(Stack Pointer) 레지스터라고 하며 약어로 R13으로 표기합니다. 일반적으로 여러분이 작성한 코드는 프로세스의 스택 공간에서 동작하므로, 어떤 코드가 실행하던 스택 주소의 위치를 알 ..
- [Arm프로세서] AAPCS: Armv7: SP(스택 포인..
-
- [Arm프로세서] AAPCS: Armv7: AAPCS와 관련..

-
Arm Linux Kernel Hacks by AustinKim|2021/06/14 22:09
6.1절에서 Arm 스팩 문서 분석으로 AAPCS와 관련된 레지스터를 소개했고, 6.2절에서는 AAPCS와 관련된 어셈블리 명령어에 대해 살펴봤습니다. 이번 절에서는 AAPCS와 관련된 레지스터가 어떻게 사용되는..
- [Arm프로세서] AAPCS: Armv7: AAPCS와 관련..
-
- [Arm프로세서] AAPCS: Armv7: 브랜치 명령어(..

-
Arm Linux Kernel Hacks by AustinKim|2021/06/11 07:36
C 프로그래밍으로 함수를 호출하는 구문을 어셈블리 코드로 확인하면 'bl [심벌 주소]'와 같은 명령어가 보입니다. 이번 절에서는 bl 명령어의 정의를 소개하고, 예제 코드를 분석하면서 bl 명령어의 사용법을..
- [Arm프로세서] AAPCS: Armv7: 브랜치 명령어(..
-
- [Arm프로세서] AAPCS: Armv7: pop 명령어

-
Arm Linux Kernel Hacks by AustinKim|2021/06/09 10:29
push 명령어를 실행한 후 함수가 종료되기 직전에 반드시 실행되는 명령어가 pop입니다. Arm 스팩 문서에서 pop 명령어 분석하기 이어서 Arm 스팩 문서에서 POP 명령어를 어떻게 설명하는지 알아 봅시다. A8..
- [Arm프로세서] AAPCS: Armv7: pop 명령어
-
- [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프로세서] AAPCS: Armv7: 서브 루틴(함..

-
Arm Linux Kernel Hacks by AustinKim|2021/05/27 08:45
Armv7 아키텍처에 지원하는 레지스터들 중에 AAPCS와 연관된 레지스터가 SP, LR 레지스터이듯이, 수 많은 Armv7의 어셈블리 명령어 중에 AAPCS와 연관된 명령어가 있습니다. AAPCS와 연관된 명령어의..
- [Arm프로세서] AAPCS: Armv7: 서브 루틴(함..
-
- [Arm프로세서] AAPCS: Armv7: 함수를 호출하기..

-
Arm Linux Kernel Hacks by AustinKim|2021/05/25 08:34
Armv7 아키텍처 관점으로 AAPCS를 보통 SP 레지스터와 LR 레지스터가 어떻게 바뀌는지 기준으로 설명합니다. 하지만 실제 거의 대부분 임베디드 혹은 시스템 개발자들은 SP와 LR 레지스터를 설정하는 어셈..
- [Arm프로세서] AAPCS: Armv7: 함수를 호출하기..
-
-
- [GDB] Arm(Armv7): C 코드와 어셈블리 코드를..

-
Arm Linux Kernel Hacks by AustinKim|2021/03/31 15:32
이번 포스트에서는 GDB를 사용해 디버깅을 하는 방법을 소개합니다. 소개된 내용을 참고하면 즐겁게 어셈블리 명령어를 디버깅할 수 있습니다. 환경: 라즈베리 파이4 GDB 실행 아래 명령어를 사용해 GDB를 Tex..
- [GDB] Arm(Armv7): C 코드와 어셈블리 코드를..




