ARM / / 2016. 8. 4. 09:59

ARM 프로세서 APCS/레지스터

ARM 이란 CPU 프로세서의 종류 중 RISC 프로세서의 한 종류이다. 


스마트폰, 태블릿pc, 라즈베리파이, 아두이노 같은 모바일기기나 iot기기에서의 대부분의 CPU는 ARM프로세서로 이루어져 있다.


상세보기 : (http://navercast.naver.com/contents.nhn?rid=122&contents_id=19411)



스마트폰 같은 모바일기기이나 IOT기기들이 매우 강세를 보이고 있기 때문에 ARM프로세서에 대해 아는 것이 중요하다.


ARM 프로세서의 레지스터는  intel기반의 x86기반의 레지스터와 다른점을 보인다. 


본문에선 깊게 들어가지않고 레지스터들만 간단히 알아보겠다.




intel x86프로세서의 레지스터에 eax~edx가 있다면 ARM프로세서엔 r0~r15의 레지스터가 있다. 


간단히 r0 ~ r15의 레지스터를 분류를 하게된다면.





레지스터 

APCS 

역할 

r0

a1

함수인자, 리턴값 전달, 범용 스크래치 레지스터 

r1

a2

함수인자, 범용 스크래치 레지스터 

r2 

a3

함수인자, 범용 스크래치 레지스터 

r3 

a4

함수인자, 범용 스크래치 레지스터 

r4 

v1 

변수용 레지스터 

r5 

v2 

변수용 레지스터 

r6 

v3

변수용 레지스터 

r7

v4 

변수용 레지스터 

r8 

v5 

변수용 레지스터 

r9 

v6/sb

변수용 레지스터 / 스택 Limit주소저장 

r10 

v7/sl

변수용레지스터 / RWRP 컴파일 베이스 어드레스 저장 

r11 

fp

이전버전 ARM 컴파일러의 FP(Frame Pointer) 

r12 

ip

범용 스크래치 레지스터 

r13

sp

스택의 현재위치를 저장하고 있는 레지스터 

r14 

lr

 링크 레지스터, 복귀 주소를 저장하고있는 레지스터

r15 

pc

 Program Counter(PC)



*pc = 사용된 주소 + 4byte








'ARM' 카테고리의 다른 글

ARM - Thumb  (0) 2016.09.09
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유