SHAR
|
算術シフト
|
SHAR
|
SHift Arithmetic Right
|
【構文】
(1)SHAR src, dest
(2)SHAR src, src2, dest
【オペレーション】
(1)dest = ( signed long ) dest >> ( src & 31 );
(2)dest = ( signed long ) src2 >> ( src & 31 );
【機能】
- | destをsrcで指定されたビット数分、算術右シフトし、その結果をdestに格納します。 |
- | srcの値は符号なし整数です。srcの範囲は、0≦src≦31です。 |
- | srcがレジスタのとき、LSB側5ビットのみ有効です。 |
- | src2をdestに転送後、destをsrcで指定されたビット数分、算術右シフトし、その結果をdestに格納します。 |
- | srcの値は符号なし整数です。srcの範囲は、0≦src≦31です。 |
【命令フォーマット】
|
|
|
|
|
|
|
(1)SHAR src, dest
|
|
#IMM:5
|
−
|
Rd
|
|
|
Rs
|
−
|
Rd
|
|
(2)SHAR src, src2, dest
|
|
#IMM:5
|
Rs
|
Rd
|
|
【フラグ変化】
条件
C:シフトアウトしたビットが“1”のとき“1”、それ以外のとき“0”になります。ただし、srcが0のときは“0”になります。
Z:演算後のdestが0のとき“1”、それ以外のとき“0”になります。
S:演算後のdestのMSBが“1”のとき“1”、それ以外のとき“0”になります。
O:“0”になります。
【記述例】
SHAR #3, R2
SHAR R1, R2
SHAR #3, R1, R2
|