4.10.4. MSR

즉치 상수나 범용 레지스터의 내용을 PSR (프로그램 상태 레지스터) 의 지정된 필드에 로드

구문 (ARMv7-M 및 ARMv6-M 제외)

MSR{cond} APSR_flags, #constant
MSR{cond} APSR_flags, Rm
MSR{cond} psr_fields, #constant
MSR{cond} psr_fields, Rm

인수 설명:

cond

선택적 조건 코드입니다 (조건부 실행 참조).

flags

이동할 APSR 플래그를 지정합니다. flags는 다음 중 하나 이상일 수 있습니다.

nzcvq

ALU 플래그 필드 마스크의 경우, PSR[31:27] (사용자 모드)

g

SIMD GE 플래그 필드 마스크의 경우, PSR[19:16] (사용자 모드)

constant

숫자 상수로 평가되는 식입니다. 상수는 32비트 워드 내에서 짝수 비트 수만큼 회전하는 8비트 패턴에 해당해야 합니다. Thumb에서는 사용할 수 없습니다.

Rm

소스 레지스터입니다.

psr

다음 중 하나입니다.

CPSR

디버그 상태에서 사용할 수 있으며 APSR에 대한 향후 제공되지 않을 동의어이기도 합니다.

SPSR

모든 프로세서의 권한 모드에서만 사용할 수 있습니다.

fields

이동할 SPSR 또는 CPSR 필드를 지정합니다. fields는 다음 중 하나 이상일 수 있습니다.

c

제어 필드 마스크 바이트의 경우, PSR[7:0] (권한 모드)

x

확장 필드 마스크 바이트의 경우, PSR[15:8] (권한 모드)

s

상태 필드 마스크 바이트의 경우, PSR[23:16] (권한 모드)

f

플래그 필드 마스크 바이트의 경우, PSR[31:24] (권한 모드)

구문 (ARMv7-M 및 ARMv6-M에만 해당)

MSR{cond} psr, Rm

인수 설명:

cond

선택적 조건 코드입니다 (조건부 실행 참조).

Rm

소스 레지스터입니다.

psr

다음 중 하나일 수 있습니다. APSR, IPSR, EPSR, IEPSR, IAPSR, EAPSR, XPSR, MSP, PSP, PRIMASK, BASEPRI, BASEPRI_MAX, FAULTMASK 또는 CONTROL

사용법

자세한 내용은 MRS를 참조하십시오.

사용자 모드

  • APSR을 사용하여 조건 플래그, Q 또는 GE 비트에 액세스합니다.

  • CPSR의 할당되지 않은 상태 비트, 권한 있는 상태 비트 또는 실행 상태 비트에 쓰기가 무시됩니다. 이것은 사용자 모드 프로그램을 권한 모드로 변경할 수 없도록 합니다.

사용자 또는 시스템 모드에 있을 때 SPSR에 액세스하면 예상할 수 없는 결과가 발생합니다.

조건 플래그

APSR_nzcvq 또는 CPSR_f 필드를 지정하면 이 명령어는 플래그를 명시적으로 업데이트합니다.

아키텍처

이 ARM 명령어는 모든 버전의 ARM 아키텍처에서 사용할 수 있습니다.

이 32비트 Thumb 명령어는 ARMv6T2 이상에서 사용할 수 있습니다.

이 명령어의 16비트 Thumb 버전은 없습니다.

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential