ROTL
|
左回転
|
ROTL
|
ROTate Left
|
【構文】
ROTL src, dest
【オペレーション】
unsigned long tmp0, tmp1;
tmp0 = src & 31;
tmp1 = dest << tmp0;
dest = (( unsigned long ) dest >> ( 32 - tmp0 )) | tmp1;
【機能】
- | destをsrcで指定されたビット数分だけ左回転します。MSBから溢れたビットはLSBとCフラグに転送します。 |
- | srcの値は符号なし整数です。srcの範囲は、0≦src≦31です。 |
- | srcがレジスタのとき、LSB側5ビットのみ有効です。 |
【命令フォーマット】
|
|
|
|
|
|
ROTL src, dest
|
|
#IMM:5
|
Rd
|
|
|
Rs
|
Rd
|
|
【フラグ変化】
条件
C:演算後のdestのLSBと同じになります。srcが0のときも、演算後のdestのLSBと同じになります。
Z:演算後のdestが0のとき“1”、それ以外のとき“0”になります。
S:演算後のdestのMSBが“1”のとき“1”、それ以外のとき“0”になります。
【記述例】