BFMOVZ

ゼロへのビットフィールド転送 【V3.00.00以降】

BFMOVZ

Bit Field MOVe to Zero


【構文】

BFMOVZ slsb, dlsb, width, src, dest

 

【オペレーション】

unsigned long tmp1, tmp2;

tmp1 = (0FFFFFFFFh >> (32-width))<<dlsb;

tmp2 = (src >> slsb) << dlsb;

dest = (tmp2 & tmp1);

 

【機能】

-

srcのビット位置slsbからwidthビット幅のデータをdestのビット位置dlsbへ転送します。destの残りのビットは0になります。

-

slsbの範囲は0≦slsb≦31、dlsbの範囲は0≦dlsb≦31、widthの範囲は1≦width≦31です。

-

(slsb + width)>32の場合、および(dlsb + width)>32の場合、destは不定になります。

-

アセンブルオプション-isaを用いてRXv3以降の命令セットを指定した場合にアセンブルできます。

 

【命令フォーマット】

構文

処理

サイズ

対象

コードサイズ

(バイト)

slsb

dlsb

width

src

dest

BFMOVZ slsb, dlsb, width, src, dest

L

#IMM:5

#IMM:5

#IMM:5

Rs

Rd

5

 

【フラグ変化】

フラグは変化しません。

 

【記述例】

BFMOVZ  #5, #10, #3, R1, R2