BFMOV
|
ビットフィールド転送 【V3.00.00以降】
|
BFMOV
|
Bit Field MOVe
|
【構文】
BFMOV slsb, dlsb, width, src, dest
【オペレーション】
unsigned long tmp1, tmp2;
tmp1 = (0FFFFFFFFh >> (32-width)) << dlsb;
tmp2 = (src >> slsb) << dlsb;
dest = (tmp2 & tmp1) | (dest & ~tmp1);
【機能】
- | srcのビット位置slsbからwidthビット幅のデータをdestのビット位置dlsbへ転送します。destの残りのビットは保持されます。 |
- | slsbの範囲は0≦slsb≦31、dlsbの範囲は0≦dlsb≦31、widthの範囲は1≦width≦31です。 |
- | (slsb + width)>32の場合、および(dlsb + width)>32の場合、destは不定になります。 |
- | アセンブルオプション-isaを用いてRXv3以降の命令セットを指定した場合にアセンブルできます。 |
【命令フォーマット】
|
|
|
|
|
|
|
|
|
BFMOV slsb, dlsb, width, src, dest
|
|
#IMM:5
|
#IMM:5
|
#IMM:5
|
Rs
|
Rd
|
|
【フラグ変化】
フラグは変化しません。
【記述例】
BFMOV #5, #10, #3, R1, R2
|