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ビットのみ有効です。

 

【命令フォーマット】

構文

処理

サイズ

対象

コードサイズ

(バイト)

src

dest

ROTL src, dest

L

#IMM:5

Rd

3

L

Rs

Rd

3

 

【フラグ変化】

フラグ

C

Z

S

O

変化

条件

C:演算後のdestのLSBと同じになります。srcが0のときも、演算後のdestのLSBと同じになります。

Z:演算後のdestが0のとき“1”、それ以外のとき“0”になります。

S:演算後のdestのMSBが“1”のとき“1”、それ以外のとき“0”になります。

 

【記述例】

ROTL    #1, R1
ROTL    R1, R2