MRS

PSR の内容の汎用レジスタへの移動命令です。

Show/hide構文

MRS{cond} Rd, psr

各パラメータには以下の意味があります。

cond

任意の条件コードを指定します。

Rd

デスティネーションレジスタを指定します。

psr

次のいずれかを指定します。

APSR

任意のプロセッサ、任意のモードで使用します。

CPSR

ARMv7-M と ARMv6-M 以外の任意のプロセッサで、代わりに同義の APSR を使用し、デバッグ状態で使用します。

SPSR

ARMv7-M と ARMv6-M 以外の任意のプロセッサ、特権モードでのソフトウェア実行でのみ使用します。

Mpsr

ARMv7-M と ARMv6-M プロセッサのみで使用します。

Mpsr

次のいずれかを指定できます。IPSREPSRIEPSRIAPSREAPSRMSPPSPXPSRPRIMASKBASEPRIBASEPRI_MAXFAULTMASK、または CONTROL

Show/hide使用法

MRSMSR と組み合わせ、PSR を更新するための読み出し、修正、書き込みのシーケンスで使用することにより、プロセッサモードの変更や Q フラグのクリなどを行うことができます。

プロセススワップコードでは、関連する PSR の内容を含め、スワップアウトされているプロセスのプログラマのモデルの状態を保存する必要があます。同様に、スワップインされているプロセスの状態も復元する必要があります。これらの操作には、MRS/store および load/MSR 命令シーケンスを使用します。

Show/hideSPSR

プロセッサがユーザモードやシステムモードの場合は、SPSR へアクセスしないで下さい。これはユーザ自身が注意する必要があります。アセンブは、コードがどのプロセッサモードで実行されるかについての情報を持たないため、警告メッセージを生成できません。

プロセッサがユーザモードまたはシステムモードの場合に SPSR にアクセスしようとする場合、結果は予測できません。

Show/hideCPSR

CPSR のエンディアンビット(E)は、特権モードでのソフトウェア実行で読み出すことができます。

プロセッサがデバッグ状態でデバッグモードを完全停止しているときにのみ、E ビット以外の CPSR 実行状態ビットを読み出すことができます。そ以外の場合、CPSR の実行状態ビットはゼロとして読み出されます。

条件フラグはどのプロセッサのどのモードでも読み取れます。ユーザモードで条件コードフラグにのみアクセスする場合は、APSR を使用して下さい。

Show/hideレジスタの制約条件

ARM 命令では PC は使用できません。Rd での SP は ARM 命令で使用できますが、これは ARMv6T2 以降では非推奨です。

Thumb 命令では PC または SP は使用できません。

Show/hide条件フラグ

この命令によるフラグへの影響はありません。

Show/hideアーキテクチャ

この ARM 命令は、ARM アーキテクチャのすべてのバージョンで使用できます。

これらの 32 ビット Thumb 命令は、ARMv6T2 以降で使用できます。

この命令の 16 ビット Thumb バージョンはありません。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211