第二部 トロン仕様チップ命令詳細第九章 任意長ビットフィールド操作命令
BVCPY
任意長ビットフィールド操作命令 <<L2>>

【ニモニックとオペランド】

BVCPY

【機能】

Copy a variable-length bit field
任意長ビットフィールドのコピー

【オプション】

/F  ビット番号の増加方向に処理(デフォルト)
/B ビット番号の減少方向に処理

【命令フォーマットと表記法】

b 処理方向
  b = 0 ビット番号の増加方向( /F)
  b = 1 ビット番号の減少方向( /B)

レジスタ上のパラメータ
R0 :ソース側ビットフィールドbase
R1 :ソース側ビットフィールドoffset(符号付き)
R2 ビットフィールドの width(符号付き)
R3 デスティネーションビットフィールドbase
R4 デスティネーションビットフィールドoffset(符号付き)

【解説】

 任意長のソース側ビットフィールドから任意長のデスティネーションビットフィールドにデータを転送します。
 ソース側ビットフィールドデスティネーションビットフィールドが重なるときには、実行中のデスティネーションビットフィールドへの書き込みが、未処理のソース側ビットフィールドのビット値を破壊しないように、処理方向オプションを使用して下さい。

実行後のレジスタの値
R0 :不変
R1 :更新
R2 :0
R3 :不変
R4 :更新
ただし、R2の初期設定値がR2≦ 0の場合には、R1、R2、R4は不変です。

【フラグ変化】

【発生EIT】

RIE s = 1

【使用例】



 汎用レジスタR0の内容をソース側のbase、R1の内容をoffsetとし、R3の内容をデスティネーション側のbase、R4の内容をoffsetとします。R2の内容をwidthとするソース側ビットフィールドからデスティネーションビットフィールドに対してアドレスの減少する向きにコピーします。