sar


算術右シフトを行います。(Shift Arithmetic Right)

[指定形式]

-

sar reg1, reg2

-

sar imm5, reg2

-

sar reg1, reg2, reg3

 

imm5に指定できるものを次に示します。

-

5ビット幅までの値を持つ絶対値式

[機能]

-

“sar reg1, reg2”の形式

第1オペランドに指定したレジスタの値の下位5ビットで示されるビット数分,第2オペランドに指定したレジスタ値を右に算術シフトし,結果を第2オペランドに指定したレジスタに格納します。

-

“sar imm5, reg2”の形式

第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)のイミーディエトをとります。