| |||
| Home > 컴파일러 관련 기능 > 명령어 내장 함수 > 명명된 레지스터 변수 | |||
컴파일러를 사용하면 명명된 레지스터 변수를 사용하는 ARM 아키텍처 기반 프로세서의 레지스터에 액세스할 수 있습니다. 명명된 레지스터 변수가 다음 범위에서 지원됩니다.
파일 범위
함수 매개변수를 제외한 지역 범위
registertypevar-name__asm(reg);
인수 설명:
type명명된 레지스터 변수의 유형입니다.
명명되는 레지스터와 크기가 같은 모든 형식이 명명된 레지스터 변수의 선언에 사용될 수 있습니다. 유형은 구조체가 될 수 있지만 비트 필드 레이아웃은 엔디안에 쉽게 영향을 받습니다.
var-name명명된 레지스터 변수의 이름입니다.
regARM 아키텍처 기반 프로세서에서 레지스터의 이름을 나타내는 문자 문자열입니다.
Table 4.18에서는 ARM 아키텍처 기반 프로세서의 명명된 레지스터 변수에 사용할 수 있는 레지스터를 보여 줍니다.
Table 4.18. ARM 아키텍처 기반 프로세서에 사용할 수 있는 명명된 레지스터
| 레지스터 | __asm용 문자열 | 프로세서 |
|---|---|---|
CPSR | "cpsr" 또는 "apsr" | 모든 프로세서 |
BASEPRI | "basepri" | Cortex-M3 |
BASEPRI_MAX | "basepri_max" | Cortex-M3 |
CONTROL | "control" | Cortex-M1, Cortex-M3 |
EAPSR | "eapsr" | Cortex-M1, Cortex-M3 |
EPSR | "epsr" | Cortex-M1, Cortex-M3 |
FAULTMASK | "faultmask" | Cortex-M3 |
IAPSR | "iapsr" | Cortex-M1, Cortex-M3 |
IEPSR | "iepsr" | Cortex-M1, Cortex-M3 |
IPSR | "ipsr" | Cortex-M1, Cortex-M3 |
MSP | "msp" | Cortex-M1, Cortex-M3 |
PRIMASK | "primask" | Cortex-M1, Cortex-M3 |
PSP | "psp" | Cortex-M1, Cortex-M3 |
r0 ~ r12 | "r0" ~ "r12" | 모든 프로세서 |
r13 또는 sp | "r13" 또는 "sp" | 모든 프로세서 |
r14 또는 lr | "r14" or "lr" | 모든 프로세서 |
r15 또는 pc | "r15" or "pc" | 모든 프로세서 |
SPSR |
| 모든 프로세서 |
XPSR | "xpsr" | Cortex-M1, Cortex-M3 |
VFP를 사용하는 타겟에서도 Table 4.19의 레지스터를 명명된 레지스터 변수로 사용할 수 있습니다.
Table 4.19. VFP를 사용하는 타겟에서 사용할 수 있는 명명된 레지스터
| 레지스터 | __asm용 문자 문자열 |
|---|---|
FPSID | "fpsid" |
FPSCR | "fpscr" |
FPEXC | "fpexc" |
컴파일러 사용 설명서의 4-10페이지의 명명된 레지스터 변수