算術右シフトを行います。(Shift Arithmetic Right)
[指定形式]
imm5に指定できるものを次に示します。
[機能]
第1オペランドに指定したレジスタの値の下位5ビットで示されるビット数分,第2オペランドに指定したレジスタ値を右に算術シフトし,結果を第2オペランドに指定したレジスタに格納します。
第1オペランドに指定した絶対値式の値で示されるビット数分,第2オペランドに指定したレジスタ値を右に算術シフトし,結果を第2オペランドに指定したレジスタに格納します。
- | “sar reg1, reg2, reg3”の形式 |
第1オペランドに指定したレジスタ値の下位5ビットで示されるビット数分,第2オペランドに指定したレジスタ値を右に算術シフトし,結果を第3オペランドに指定したレジスタに格納します。
[詳細説明]
アセンブラでは,機械語命令のsar命令が1つ生成されます。
[フラグ]
CY
|
最後にシフト・アウトしたビットの値が1の場合1,そうでない場合0
(指定したビット数が0の場合0)
|
OV
|
0
|
S
|
結果が負になった場合1,そうでない場合0
|
Z
|
結果が0になった場合1,そうでない場合0
|
SAT
|
−
|
[注意事項]
- | “sar imm5, reg2”の形式でimm5に0〜31の範囲を越える絶対値式を指定した場合,次のメッセージが出力され,指定した値の下位5ビット注が用いられてアセンブルが続行されます。 |
W0550011 : イミーディエトの値が指定可能な値の範囲を越えています。
|
注 | 機械語命令のsar命令は,第1オペランドに0〜31(0x0〜0x1F)のイミーディエトをとります。 |