SHLL
|
論理/算術左シフト
|
SHLL
|
SHift Logical and arithmetic Left
|
【構文】
(1)SHLL src, dest
(2)SHLL src, src2, dest
【オペレーション】
(1)dest = dest << ( src & 31 );
(2)dest = src2 << ( src & 31 );
【機能】
- | destをsrcで指定されたビット数分、論理左シフトし、その結果をdestに格納します。 |
- | srcがレジスタのとき、LSB側5ビットのみ有効です。 |
- | srcの値は符号なし整数です。srcの範囲は、0≦src≦31です。 |
- | src2をdestに転送後、destをsrcで指定されたビット数分、論理左シフトし、その結果をdestに格納します。 |
- | srcの値は符号なし整数です。srcの範囲は、0≦src≦31です。 |
【命令フォーマット】
|
|
|
|
|
|
|
(1)SHLL src, dest
|
|
#IMM:5
|
−
|
Rd
|
|
|
Rs
|
−
|
Rd
|
|
(2)SHLL 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:演算結果のMSBとシフトアウトしたビットがすべて同じ値のとき(シフト中に符号が変化しなかったとき)“0”、それ以外のとき“1”になります。ただし、srcが0のときは“0”になります。
【記述例】
SHLL #3, R2
SHLL R1, R2
SHLL #3, R1, R2
|