태그>arm프로세서(총 124개의 글)
'arm프로세서' 관련 최근글
-
- [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/02 09:02
sub는 지정된 상수만큼 감소시키는 연산을 수행하는 명령어인데, stp 명령어 전 후로 'sub sp, sp, #16'와 같이 SP 레지스터의 값을 감소시키는 명령어를 볼 수 있습니다. 이 동작은 Armv7 아키텍처에서 ..
- [Arm프로세서] AAPCS: Armv8: 스택과 관련된 ..
-
- [Arm프로세서] AAPCS: Armv8: SP_ELn와 X30..
-
Arm Linux Kernel Hacks by AustinKim|2021/07/26 14:54
Armv8 아키텍처에서 정의된 레지스터 중 SP_ELn와 X30 레지스터는 AAPCS와 연관된 핵심 레지스터입니다. 먼저 전체 레지스터 목록 중에서 SP_ELn와 X30 레지스터를 보겠습니다. 전체 레지스터 목록 중 SP..
- [Arm프로세서] AAPCS: Armv8: SP_ELn와 X30..
-
- [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: SP(스택 포인..
-
Arm Linux Kernel Hacks by AustinKim|2021/06/16 07:01
SP는 스택 포인터(Stack Pointer) 레지스터라고 하며 약어로 R13으로 표기합니다. 일반적으로 여러분이 작성한 코드는 프로세스의 스택 공간에서 동작하므로, 어떤 코드가 실행하던 스택 주소의 위치를 알 ..
- [Arm프로세서] AAPCS: Armv7: SP(스택 포인..
-
- [Arm프로세서] AAPCS: Armv7: 브랜치 명령어(..
-
Arm Linux Kernel Hacks by AustinKim|2021/06/11 07:36
C 프로그래밍으로 함수를 호출하는 구문을 어셈블리 코드로 확인하면 'bl [심벌 주소]'와 같은 명령어가 보입니다. 이번 절에서는 bl 명령어의 정의를 소개하고, 예제 코드를 분석하면서 bl 명령어의 사용법을..
- [Arm프로세서] AAPCS: Armv7: 브랜치 명령어(..
-
- [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: 함수를 호출하기..
-
- [Arm프로세서] Armv8: VBAR_ELx 기준으로 ..
-
Arm Linux Kernel Hacks by AustinKim|2021/02/08 21:33
이전 포스트까지 EL1에 존재하는 VBAR_EL1와 EL1에 있는 VBAR_EL2 기준으로 익셉션 벡터 테이블에 대해 알아봤습니다. 이제 원점으로 돌아가서 이번 절의 앞 부분에 소개한, Armv8 스팩 문서에 있는 익셉..
- [Arm프로세서] Armv8: VBAR_ELx 기준으로 ..
-
- [Arm프로세서] Armv7: 익셉션이 발생한 명령어로..
-
ARM Linux Kernel Hacks by AustinKim|2020/12/21 18:18
ARM 코어가 파이프 라인의 어느 단계에서 어떤 방식으로 익셉션을 유발하는지 알면, 자연히 익셉션이 발생한 다음 명령어로 복귀하는 방법도 알게 됩니다. 다음 표를 보면서 이 내용을 정리해 봅시다. 표 8.3 ..
- [Arm프로세서] Armv7: 익셉션이 발생한 명령어로..
-
- [Arm프로세서] 익셉션(Exception) 동작 슈도 코드 소개
-
ARM Linux Kernel Hacks by AustinKim|2020/12/15 11:31
Armv8 문서를 보면 Arm 코어에서 하드웨어적으로 처리하는 동작을 슈도 코드로 표기한 부분을 볼 수 있습니다.문서 이름과 해당 절은 다음과 같습니다. * 문서 이름: DDI0487Fc_armv8_arm.pdf * 해당 절 Part J Architectural Pseudocode J1.1 Pseudocode for AArch64 opera..
- [Arm프로세서] 익셉션(Exception) 동작 슈도 코드 소개
-
- [ARM프로세서] ARMv7: 익셉션의 종류별 ARM ..
-
ARM Linux Kernel Hacks by AustinKim|2020/12/09 19:49
이전 절에서 배운 바와 같이, ARM 코어는 익셉션을 유발할 때 익셉션의 종류에 따라 ARM의 동작 모드를 변경합니다. 익셉션을 다른 관점으로 보면, 익셉션은 "ARM 동작 모드를 변경하는 유발 인자&qu..
- [ARM프로세서] ARMv7: 익셉션의 종류별 ARM ..
-
- [ARM프로세서] ARMv7: 소프트웨어 인터럽트 타..
-
ARM Linux Kernel Hacks by AustinKim|2020/12/09 19:48
ARM 코어가 ‘svc’ 명령어를 실행하면 소프트웨어 인터럽트를 유발합니다. 다음 그림을 보면서, 소프트웨어 인터럽트가 발생할 때 ARM 코어의 세부 동작을 알아봅시다. 그림 8.11 소프트웨어 인터럽트를 ..
- [ARM프로세서] ARMv7: 소프트웨어 인터럽트 타..