R&D/OS

ARM register

sunshout 2013. 6. 27. 00:08

In this chapter, we can learn ARM's basic operation with registers.


On the ARM processor there are 17 registers always available in any mode and 18 registers in a privileged mode. Each mode has a set of extra registers called banked registers. When mode is changed banked registers are swapped in


예를 들어, User mode일 때 r0~r15 까지는 범용 레지스터로 사용할 수 있다. 

하지만 r13, r14, r15는 특별하게 취급되기도 한다. 따라서 일반적으로 r13~r15는 범용레지스터로 사용하지 않는 것이 좋다.

r13/SP는 보통 SP(stack pointer)로 사용되어 현재 프로세스 모드의 스택 맨 위 주소값을 저장

r14/LR은 link register로 코어가 서브루틴을 호출할 때마다 그 복귀 주소를 저장

r15/pc는 Program Counter로 프로세서가 읽어들인 다음 명령어 주소를 저장


이외에 cpsr, spsr 레지스터가 있으며,cpsr은 현재 프로그램 상태 레지스터를 말하며, spsr은 이전에 저장된 프로그램 상태 레지스터를 의미한다.