BTST

Tビットテスト

BTST

Bit TeST


【構文】

BTST src, src3

 

【オペレーション】

(1)src2がメモリの場合

unsigned char src2;

Z = ~(( src2 >> ( src & 7 )) & 1 );

C = (( src2 >> ( src & 7 )) & 1 );

 

(2)src2がレジスタの場合

register unsigned long src2;

Z = ~(( src2 >> ( src & 31 )) & 1 );

C = (( src2 >> ( src & 31 )) & 1 );

 

【機能】

-

rcで指定したsrc2のビットの値を反転した結果を Zフラグに、srcで指定したsrc2のビットの値をCフラグに転送します。

-

srcのIMMの値はビット番号です。

-

IMM:3の範囲は、0≦IMM:3≦7です。

-

IMM:5の範囲は、0≦IMM:5≦31です。

 

【命令フォーマット】

構文

処理

サイズ

対象

コードサイズ

(バイト)

src

src2

(1)BTST src, src2

B

#IMM:3

[Rs2].B

2

B

#IMM:3

dsp:8[Rs2].B

3

B

#IMM:3

dsp:16[Rs2].B

4

B

Rs

[Rs2].B

3

B

Rs

dsp:8[Rs2].B

4

B

Rs

dsp16:[Rs2].B

5

(2)BTST src, src2

L

#IMM:5

Rs2

2

L

Rs

Rs2

3

 

【フラグ変化】

フラグ

C

Z

S

O

変化

条件

C:指定ビットが“1”のとき“1”、それ以外のとき“0”になります。

Z:指定ビットが“0”のとき“1”、それ以外のとき“0”になります。

 

【記述例】

BTST    #7, [R2]
BTST    R1, [R2]
BTST    #31, R2
BTST    R1, R2