ARM
Posts
173 posts[Arm프로세서] AAPCS: Armv7: AAPCS와 관련된 레지스터와 어셈블리 명령어 분석
6.1절에서 Arm 스팩 문서 분석으로 AAPCS와 관련된 레지스터를 소개했고, 6.2절에서는 AAPCS와 관련된 어셈블리 명령어에 대해 살펴봤습니다. 이번 절에서는 AAPCS와 관련된 레지스터가 어떻게 사용되는지, 어셈블리 명령어와 함께 분석하면서 자세히 알아보겠습니다. 먼저 AAPCS와 연관된 레지스터의 목록을 알아볼까요? 표 6.4 AAPCS와 연관된 레지스터 먼저 SP 레지스터에 대해 소개하고, SP 레지스터가 어떻게 바뀌는지 어셈블리 명령어 분석으로 알아보겠습니다. Written by 저자
[Arm프로세서] AAPCS: Armv7: 브랜치 명령어(bl)
C 프로그래밍으로 함수를 호출하는 구문을 어셈블리 코드로 확인하면 'bl [심벌 주소]'와 같은 명령어가 보입니다. 이번 절에서는 bl 명령어의 정의를 소개하고, 예제 코드를 분석하면서 bl 명령어의 사용법을 살펴보겠습니다. bl 명령어란 이번에도 Arm 스팩 문서에서 bl 명령어를 설명하는 부분을 소개합니다. 5.4 Branches Calls to subroutines, where it is necessary for the return address to be stored in the link register, use the BL instruction.(출처: DEN0013D_cortex_a_series_PG.pdf) 위 내용은 "BL 명령어를 사용하면 서브 루틴을 호출하는데, 서브 루틴을 호출한
[Arm프로세서] AAPCS: Armv7: pop 명령어
push 명령어를 실행한 후 함수가 종료되기 직전에 반드시 실행되는 명령어가 pop입니다. Arm 스팩 문서에서 pop 명령어 분석하기 이어서 Arm 스팩 문서에서 POP 명령어를 어떻게 설명하는지 알아 봅시다. A8.8.132 POP (ARM)Pop Multiple Registers loads multiple registers from the stack, loading from consecutive memory locations starting at the address in SP, and updates SP to point just above the loaded data. 스팩 문서의 내용은 다음과 같이 알기 쉽게 해석할 수 있습니다. 1.프로세스의 스택에 있는 데이터를 지정된 레지스터
[Arm프로세서] AAPCS: Armv7: push 명령어
SP 레지스터와 프로세스의 스택이 변경될 때 실행되는 명령어는 push와 pop입니다. 각 명령어의 의미를 알아보고, 예제 코드를 분석하겠습니다. 먼저 Arm 스팩 문서에서 push 명령어를 어떻게 설명하는지 알아봅시다. A8.8.133 PUSH Push Multiple Registers stores multiple registers to the stack, storing to consecutive memory locations ending just below the address in SP, and updates SP to point to the start of the stored data.(출처: DDI0406C_C_arm_architecture_reference_manual) 스팩 문서에서 p



