SHLR

論理右シフト

SHLR

SHift Logical Right


【構文】

(1)SHLR src, dest

(2)SHLR src, src2, dest

 

【オペレーション】

(1)dest = ( unsigned long ) dest >> ( src & 31 );

(2)dest = ( unsigned long ) src2 >> ( src & 31 );

 

【機能】

-

destをsrcで指定されたビット数分、論理右シフトし、その結果をdestに格納します。

-

LSBから溢れたビットはCフラグに転送します。

-

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

-

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

-

src2をdestに転送後、destをsrcで指定されたビット数分、論理右シフトし、その結果をdestに格納します。

-

LSBから溢れたビットはCフラグに転送します。

-

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

 

【命令フォーマット】

構文

処理

サイズ

対象

コードサイズ

(バイト)

src

src2

dest

(1)SHLR src, dest

L

#IMM:5

Rd

2

L

Rs

Rd

3

(2)SHLR src, src2, dest

L

#IMM:5

Rs

Rd

3

 

【フラグ変化】

フラグ

C

Z

S

O

変化

条件

C:シフトアウトしたビットが“1”のとき“1”、それ以外のとき“0”になります。ただし、srcが0のときは“0”になります。

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

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

 

【記述例】

SHLR    #3, R2
SHLR    R1, R2
SHLR    #3, R1, R2