SUBS PC、lr

スタックから何もポップしない例外からの復帰です。

Show/hide構文

SUBS{cond} pc, lr, #imm               ; A32 および T32 コード
MOVS{cond} pc, lr                     ; A32 および T32 コード
op1S{cond} pc, Rn, #imm                         ; A32 コードのみで、非推奨
op1S{cond} pc, Rn, Rm {, shift}       ; A32 コードのみで、非推奨
op2S{cond} pc, #imm                                 ; A32 コードのみで、非推奨
op2S{cond} pc, Rm {, shift}           ; A32 コードのみで非推奨

各項目には以下の意味があります。

op1

ADCADDANDBICEORORNORRRSBRSCSBC、および SUB のいずれかを指定します。

op2

MOV および MVN のいずれかを指定します。

cond

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

imm

イミディエート値を指定します。T32 コードでの範囲は 0 ~ 255 に制限されています。A32 コードではフレキシブル第 2 オペランドを指定します。

Rn

第 1 オペランドレジスタを指定します。LR 以外のレジスタの使用は非推奨です。

Rm

オプションでシフトされた第 2 または唯一のオペランドレジスタを指定します。

shift

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

Show/hide使用法

SUBS pc, lr, #imm では、リンクレジスタから値を減算し、結果を PC にロードして、SPSR を CPSR にコピーします。

スタックに復帰状態がない場合、SUBS pc, lr, #imm を使用して例外から復帰できます。#imm の値は、復帰する例外の種類によって異なります。

Show/hide注釈

SUBS pc, lr, #imm では、アドレスを PC に書き込みます。例外復帰後に使用される命令セットに合わせて、このアドレスの境界整列を調整する必要があります。

  • A32 命令セットに復帰するには、PC に書き込むアドレスをワード境界で整列する必要があります。

  • T32 命令セットに復帰するには、PC に書き込むアドレスをハーフワード境界で整列する必要があります。

適切な例外開始メカニズムの後で復帰するために命令を使用する場合、これらの規則に従うためにソフトウェア側に特別な予防策は必要ありません。

T32 では、SUBS{cond} pc, lr, #imm のみが有効な命令です。MOVS pc, lrSUBS pc, lr, #0 と同じ意味です。他の命令は定義されていません。

A32 では、SUBS{cond} pc, lr, #imm および MOVS{cond} pc, lr のみが有効な命令です。その他の命令は非推奨です。

Caution

これらの命令は、ユーザモードやシステムモードでは使用しないで下さい。アセンブラは、警告メッセージを生成できません。

Show/hide可用性

この 32 ビット命令は、A32 および T32 で使用できます。

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

Show/hide関連項目

Copyright © 2014 ARM. All rights reserved.ARM DUI 0802AJ
Non-ConfidentialID061814