定数としての Operand2

Operand2 定数は次の形式で指定できます。

#constant

constant は数値を求める式です。

ARM 命令では、constant には、32 ビットのワード内で 8 ビットの値を右に任意の偶数ビット分ロテートして得られる任意の値を指定できます。

Thumb 命令では、constant には以下の値を指定できます。

Note

上記の定数の XY は 16 進数の値です。

また、少数の命令では、constant により広い範囲の値を指定することができます。詳細については、各命令の説明を参照して下さい。

MOVSMVNSANDSORRSORNSEORSBICSTEQ、または TST 命令で Operand2 定数を使用するときに、その定数が 255 よりも大きく、8 ビット値のシフトによって得られる場合は、キャリーフラグは定数のビッ [31] に更新されます。Operand2 がそれ以外の定数の場合、これらの命令はキャリーフラグに影響しません。

Show/hide命令置換

constant の値を使用できなくても、論理反転または否定が使用できる場合は、アセンブラは等価な命令を生成し、constant を反転または否定します。

例えば、アセンブラは CMP Rd, #0xFFFFFFFE という命令を CMN Rd, #0x2 という等価の命令としてアセンブルすることがあります。

逆アセンブルリストとソースコードを比較する場合は、この点に注意して下さい。

アセンブラの --diag_warning 1645 コマンドラインオプションを使用して、いつ命令置換が発生したかを確認できます。

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489EJ
Non-ConfidentialID081711