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

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

BVMAP

【機能】

Manipulate a variable-length bit field
任意長ビットフィールドの演算

【オプション】

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

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



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


【解説】

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

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

【フラグ変化】

【発生EIT】

RIE s = 1

【使用例】



 汎用レジスタR0の内容をソース側のbase、R1の内容をoffsetとし、R3の内容をデスティネーション側のbase、R4の内容をoffsetとします。R2の内容をwidthとするソース側ビットフィールドのビットを反転し、デスティネーションビットフィールドに書き込みます。汎用レジスタR0の内容をソース側のbase、R1の内容をoffsetとし、R3の内容をデスティネーション側のbase、R4の内容をoffsetとします。R2の内容をwidthとするソース側ビットフィールドのビットを反転し、デスティネーションビットフィールドに書き込みます。