ROTR

右回転

ROTR

ROTate Right


【構文】

ROTR src, dest

 

【オペレーション】

unsigned long tmp0, tmp1;

tmp0 = src & 31;

tmp1 = ( unsigned long ) dest >> tmp0;

dest = ( dest << ( 32 - tmp0 )) | tmp1;

 

【機能】

-

destをsrcで指定されたビット数分だけ右回転します。LSBから溢れたビットはMSBとCフラグに転送します。

-

srcの値は符号なし整数です。srcの範囲は、0≦src≦31です。

-

srcがレジスタのとき、LSB側5ビットのみ有効です。

 

【命令フォーマット】

構文

処理

サイズ

src

dest

コードサイズ

(バイト)

ROTR src, dest

L

#IMM:5

Rd

3

L

Rs

Rd

3

 

【フラグ変化】

フラグ

C

Z

S

O

変化

条件

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

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

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

 

【記述例】

ROTR    #1, R1
ROTR    R1, R2