태그 : arm 요약보기전체보기목록닫기
- [Arm프로세서] Armv8 익셉션 레벨: PSTATE와 currentEL 레지스터(0)2021.11.04
- [Arm프로세서] Armv8 익셉션 레벨과 privilege level(0)2021.10.22
- [Arm프로세서] Armv7: subs와 movs 명령어를 실행해 Arm 동작 모드 변경(0)2021.10.01
- [Arm프로세서] AAPCS: Armv8: C 코드 최적화 - 함수 인자의 갯수는 9개 이하로 제한(0)2021.09.01
- [Arm프로세서] AAPCS: Armv8: C 코드 최적화 - 자주 호출되는 함수는 inline 키워드로 선언(0)2021.09.01
- [Arm프로세서] AAPCS: Armv8: 함수를 호출할 때 쓰이는 X0-X7 레지스터와 명령어 분석(0)2021.08.31
- [Arm프로세서] AAPCS: Armv8: X30 링크 레지스터와 어셈블리 명령어 분석(0)2021.08.30
- [Arm프로세서] AAPCS: Armv8: SP(스택 포인터) 레지스터의 세부 동작(0)2021.08.29
- [Arm프로세서] AAPCS: Armv8: AAPCS와 관련된 레지스터와 어셈블리 명령어 분석(0)2021.08.29
- [Arm프로세서] AAPCS: Armv8: 브랜치와 복귀 명령어 - RET(0)2021.08.28
- Armv8: Exception Level(EL)
- 2021/11/04 10:39
Armv8 아키텍처는 프로세서의 상태를 PSTATE를 통해 제공하는데, 이 정보 중에 익셉션 레벨이 포함돼 있습니다. 먼저 Armv8 아키텍처 문서를 보면서 PSTATE가 무엇인지 알아봅시다.(출처: DDI0487Fc_armv8_arm.pdf)D1.7 Process state, PSTATEIn the Armv8-A architecture, Process...
- Armv8: Exception Level(EL)
- 2021/10/22 21:28
Armv8 아키텍처는 PL0-PL3까지 4개의 privilege levels(접근 권한)을 제공합니다. 여기서 소개하는 privilege levels은 Armv7 아키텍처에서 다룬 내용과 거의 유사합니다.[정보]privilege levels은 Arm 아키텍처에서만 지원할까요? 그렇지는 않습니다.x86을 포함한 대부분 CPU 아키텍처는 privilege ...
- Armv7: 동작 모드
- 2021/10/01 11:26
Arm 동작 모드를 바꾸는 다른 방법은 spsr 레지스터의 [7:0] 비트를 변경하고 다음과 같은 형식의 명령어를 실행하는 것입니다. ❑ subs pc, lr, #4 ❑ movs pc, lrsub은 뺄셈 연산, mov는 레지스터의 값을 이동시키는 연산을 수행하는 명령어...
- Armv8: 함수 호출 규약
- 2021/09/01 11:34
6.4 절에서 Armv7 아키텍처에서 다룬 AAPCS는 실무에 적용할 만한 실용적인 내용이 많다고 설명했습니다. Armv8 아키텍처의 AAPCS도 마찬가지입니다.이번 절에서는 Armv8 아키텍처의 AAPCS에서 성능 개선을 위해 고려해야 할 2가지 내용을 소개합니다.Armv8 아키텍처의 AAPCS로 관점으로 보면 함수 인자의 갯수는 9개 이하로 제한하는...
- Armv8: 함수 호출 규약
- 2021/08/31 08:54
SP 레지스터, X30 레지스터와 더불어 눈여겨봐야 할 레지스터가 X0-X7 레지스터입니다.함수를 호출할 때 전달되는 인자는 X0-X7 레지스터에 저장되고, 함수가 반환하는 값은 X0 레지스터로 저장되기 때문입니다.X0-X7 레지스터의 역할: 함수에 전달된 인자 저장01 0x10000 <main>:02 {03 0x10000: &nb...
- Armv8: 함수 호출 규약
- 2021/08/30 09:03
SP 레지스터보다 링크 레지스터인 X30은 '함수 호출'에서 가장 중요한 역할을 수행합니다. 함수를 호출한 다음에 복귀할 주소를 X30 레지스터가 저장하기 때문입니다.우리가 함수를 작성하면 어디선가 함수를 호출할 것이라 예상합니다. 그런데 함수를 호출한 다음, 호출된 함수의 실행이 종료되면 (함수를 호출한 코드 기준으로) 바로 아랫 부분에 있는 코드가 ...
- Armv8: 함수 호출 규약
- 2021/08/29 22:25
SP는 스택 포인터(Stack Pointer) 레지스터라고 하는데, Armv8 아키텍처에서는 SP_ELn로 표기합니다.SP_ELn 레지스터와 익셉션 레벨6장에서는 SP은 프로세스의 스택 공간 내에서 업데이트된다고 했는데, Armv8 아키텍처에서 명시된 SP_ELn은 어떤 개념인지 조금 헷갈립니다. SP_ELn은 쉽게 풀어서 다음 표와 같이 설명할 수 있...
- Armv8: 함수 호출 규약
- 2021/08/29 22:24
지금까지 AAPCS와 관련된 레지스터인 SP_ELn, X30 그리고 X0-X7 레지스터에 대해 알아봤습니다. 또한 서브 루틴을 호출할 때 실행되는 어셈블리 명령어를 소개했습니다. 이번 절에서는 어셈블리 명령어를 분석하면서 AAPCS와 관련된 레지스터가 어떻게 사용되는지 알아보겠습니다. 배운 내용을 복습하는 차원으로 AAPCS와 연관된 레지스터의...
- Armv8: 함수 호출 규약
- 2021/08/28 09:33
마지막으로 AAPCS와 연관된 명령어로 RET 에 대해 알아봅시다. 다음은 Arm 스팩 문서에서 명시된 RET 명령어에 대한 내용입니다.C6.2.219 RETReturn from subroutine branches unconditionally to an address in a register, with a hint that this is a subrou...
최근 덧글