SRS

スタックに復帰状態をストアする命令です。

Show/hide構文

SRS{addr_mode}{cond} sp{!}, #modenum
SRS{addr_mode}{cond} #modenum{!}       ; UAL 以前の構文

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

addr_mode

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

IA

転送単位でアドレスをポストインクリメントします。

IB

転送単位でアドレスをプレインクリメントします(ARM のみ)。

DA

転送単位でアドレスをポストデクリメントします(ARM のみ)。

DB

転送単位でアドレスをプレデクリメントします(完全降順スタック)。

addr_mode を省略すると、デフォルトで IA(ポストインクリメント)が使用されます。スタックを実装するときなどに、スタック指向のアドレッシングモード接尾文字を使用することもできます。

cond

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

Note

cond を指定できるのは、Thumb コードで、前に IT 命令を使用した場合のみです。この命令は、ARM では無条件命令です。

!

任意に指定できる接尾文字です。! を指定すると、modenum によって指定されたモードの SP に最終アドレスがライトバックされます。

modenum

バンク付き SP がベースレジスタとして使用されるモードの番号を指定します。定義済みのモード番号だけを使用する必要があります。

Show/hide演算

SRS は、modenum によって指定されたモードの SP が保持するアドレスとその次のワードに、現在のモードの LR と SPSR をそれぞれストアします。また、modenum によって指定されたモードの SP を必要に応じて更新できます。この命令は、一般的にスタックへのアクセスに使用される STM 命令と互換性があります。

Note

完全降順スタックに対しては、SRSFD または SRSDB を使用する必要があります。

Show/hide使用法

SRS 命令を使用して、自動的に選択された別のスタックに、例外ハンドラの復帰状態をストアできます。

Show/hide注釈

アドレスがワード境界で整列されていないところでは、SRS は、指定されたアドレスの最下位 2 ビットを無視します。

アーキテクチャ上では、SRS によって生成される、メモリの各ワードへのアクセスの時間的順序が定義されていません。アクセス順序の影響を受けるメモリマップされた I/O 置では、この命令を使用しないで下さい。

ユーザモードとシステムモードには SPSR がないため、SRS は使用しないで下さい。

ThumbEE では SRS を使用しないでください。

modenum で監視モードを指定した場合、SRS は非セキュア状態で使用できません。

Show/hideアーキテクチャ

この ARM 命令は、ARMv6 以降で使用できます。

この 32 ビット Thumb 命令は、ARMv6T2 以降で使用できます。ただし、ARMv7-M アーキテクチャでは使用できません。

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

Show/hide

R13_usr  EQU     16
         SRSFD   sp,#R13_usr

Show/hide関連項目

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