4.10.3. MRS

PSR의 내용을 범용 레지스터로 이동

구문

MRS{cond} Rd, psr

인수 설명:

cond

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

Rd

대상 레지스터입니다. Rd는 r15이면 안 됩니다.

psr

다음 중 하나입니다.

APSR

모든 프로세서와 모든 모드에서 사용할 수 있습니다.

CPSR

ARMv7-M 및 ARMv6-M을 제외한 모든 프로세서에서 APSR의 제공되지 않는 동의어로 디버그 상태에서 사용됩니다.

SPSR

ARMv7-M 및 ARMv6-M을 제외한 모든 프로세서의 권한 모드에서만 사용할 수 있습니다.

Mpsr

ARMv7-M 및 ARMv6-M 프로세서에서만 사용할 수 있습니다.

Mpsr

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

사용법

PSR을 업데이트하기 위한 읽기-수정-쓰기 시퀀스에서 MSR과 함께 MRS를 사용하여 프로세서 모드를 변경하거나 Q 플래그를 지우는 등의 작업을 수행합니다.

프로세스 스왑 코드에서는 스왑 중인 원본 프로세스의 프로그래머 모델 상태를 관련 PSR 내용과 함께 저장해야 합니다. 마찬가지로 스왑 중인 대상 프로세스의 상태도 복원해야 합니다. 이러한 작업에서는 MRS/store 및 load/MSR 명령어 시퀀스를 사용합니다.

SPSR

프로세서가 사용자 또는 시스템 모드에 있을 때는 SPSR에 액세스하려고 시도하면 안 됩니다. 이것은 사용자의 책임입니다. 어셈블러에서는 실행 시간에 프로세서 모드에 대한 정보가 없기 때문에 이에 대한 경고를 표시할 수 없습니다.

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

CPSR

CPSR 실행 상태 비트는 프로세서가 디버그 상태인 중단 디버그 모드에 있을 때만 읽을 수 있습니다. 그렇지 않으면 CPSR 실행 상태 비트가 0으로 표시됩니다.

조건 플래그는 모든 프로세서의 모든 모드에서 읽을 수 있습니다. CPSR 대신 APSR을 사용하십시오.

조건 플래그

이 명령어는 플래그를 변경하지 않습니다.

아키텍처

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

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

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

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