4.7.49. 명명된 레지스터 변수

컴파일러를 사용하면 명명된 레지스터 변수를 사용하는 ARM 아키텍처 기반 프로세서의 레지스터에 액세스할 수 있습니다. 명명된 레지스터 변수가 다음 범위에서 지원됩니다.

구문

register type var-name __asm(reg);

인수 설명:

type

명명된 레지스터 변수의 유형입니다.

명명되는 레지스터와 크기가 같은 모든 유형이 명명된 레지스터 변수의 선언에 사용될 수 있습니다. 유형은 구조체가 될 수 있지만 비트 필드 레이아웃은 엔디안에 쉽게 영향을 받습니다.

var-name

명명된 레지스터 변수의 이름입니다.

reg

ARM 아키텍처 기반 프로세서에서 레지스터의 이름을 나타내는 문자 문자열입니다.

Table 4.16에서는 ARM 아키텍처 기반 프로세서의 명명된 레지스터 변수에 사용할 수 있는 레지스터를 보여 줍니다.

Table 4.16. ARM 아키텍처 기반 프로세서에 사용할 수 있는 명명된 레지스터 

레지스터__asm용 문자 문자열
CPSR

"cpsr" 또는 "apsr"

SPSR

"spsr"

r0 ~ r12"r0" ~ "r12"
r13 또는 sp"r13" 또는 "sp"
r14 또는 lr"r14" 또는 "lr"
r15 또는 pc"r15" 또는 "pc"

VFP를 사용하는 타겟에서도 Table 4.17의 레지스터를 명명된 레지스터 변수로 사용할 수 있습니다.

Table 4.17. VFP를 사용하는 타겟에서 사용할 수 있는 명명된 레지스터 

레지스터__asm용 문자 문자열
FPSID "fpsid"
FPSCR "fpscr"
FPEXC "fpexc"

예제

void foo(void)
{
    register int foo __asm("r0");
}

이 예제에서 foor0 레지스터에 대한 명명된 레지스터 변수로 선언됩니다.

추가 참고

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0348AK
Non-Confidential