文書の過去の版を表示しています。
目次
MPINO STUDIO 2 Phase 4-6・ビット演算ボックス関数
1. 共通ルール
ビット演算命令はWORDの16ビットをまとめて計算します。シフトは外へ出たビットを捨てて空きを0で埋め、ローテートは外へ出たビットを反対側へ戻します。
2. WAND・WOR・WXOR
WAND
ビット AND (Word AND)
2つのWORDの各ビットをAND演算し、結果を対象に格納します。
入力形式: WAND D0 D1 D2
| 実行条件 | 実行前 | 入力した命令 | 予想結果 |
|---|---|---|---|
| 左側条件 ON | D0=0x00CC, D1=0x00AA | WAND D0 D1 D2 | D2=0x0088 |
WOR
ビット OR (Word OR)
2つのWORDの各ビットをOR演算し、結果を対象に格納します。
入力形式: WOR D0 D1 D2
| 実行条件 | 実行前 | 入力した命令 | 予想結果 |
|---|---|---|---|
| 左側条件 ON | D0=0x00CC, D1=0x00AA | WOR D0 D1 D2 | D2=0x00EE |
WXOR
ビット XOR (Word XOR)
2つのWORDの各ビットをXOR演算し、結果を対象に格納します。
入力形式: WXOR D0 D1 D2
| 実行条件 | 実行前 | 入力した命令 | 予想結果 |
|---|---|---|---|
| 左側条件 ON | D0=0x00CC, D1=0x00AA | WXOR D0 D1 D2 | D2=0x0066 |
3. WNOT
ビット NOT (Word NOT)
ソースWORDの各ビットを反転し、結果を対象に格納します。
入力形式: WNOT D0 D1
引数
- 1番目 = S: 反転するソースアドレスまたは定数
- 2番目 = D: 結果格納アドレス
| 実行条件 | 実行前 | 入力した命令 | 予想結果 |
|---|---|---|---|
| 左側条件 ON | D0=0x00CC | WNOT D0 D1 | D1=0xFF33 |
4. SHL・SHR
SHL
論理左シフト (Shift Left)
WORDを左へシフトし、結果を対象に格納します。左へ出たビットを捨て、右の空きを0で埋めます。シフト数には0~15を使用します。
入力形式: SHL D0 2 D1
引数
- 第1引数 = ソース:整数WORDアドレス
- 第2引数 = シフト数:0~15
- 第3引数 = 対象:結果格納アドレス
| 実行条件 | 実行前 | 入力した命令 | 予想結果 |
|---|---|---|---|
| 左側条件 ON | D0=0x0003 | SHL D0 2 D1 | D1=0x000C |
SHR
論理右シフト (Shift Right)
D WORDを右へ論理シフトし、結果を対象に格納します。右へ出たビットを捨て、左の空きを0で埋めます。
入力形式: SHR D0 1 D1
引数
- 第1引数 = ソース:D WORDアドレス
- 第2引数 = シフト数:0~15
- 第3引数 = 対象:結果格納アドレス
| 実行条件 | 実行前 | 入力した命令 | 予想結果 |
|---|---|---|---|
| 左側条件 ON | D0=0x000C | SHR D0 1 D1 | D1=0x0006 |
5. ROL・ROR
ROL
左回転 (Rotate Left)
D・C・T WORDを左へローテートし、結果を対象に格納します。左へ出たビットは右端へ戻します。
入力形式: ROL D0 2 D1
引数
- 第1引数 = ソース:D・C・T WORDアドレス
- 第2引数 = ローテート数
- 第3引数 = 対象:D・C・T WORDアドレス
| 実行条件 | 実行前 | 入力した命令 | 予想結果 |
|---|---|---|---|
| 左側条件 ON | D0=0x8001 | ROL D0 2 D1 | D1=0x0006 |
ROR
右回転 (Rotate Right)
D・C・T WORDを右へローテートし、結果を対象に格納します。右へ出たビットは左端へ戻します。
入力形式: ROR D0 1 D1
引数
- 第1引数 = ソース:D・C・T WORDアドレス
- 第2引数 = ローテート数
- 第3引数 = 対象:D・C・T WORDアドレス
| 実行条件 | 実行前 | 入力した命令 | 予想結果 |
|---|---|---|---|
| 左側条件 ON | D0=0x0003 | ROR D0 1 D1 | D1=0x8001 |
6. トラブルシューティング
| 症状 | 確認項目 |
|---|---|
| 右シフトで符号ビットが左側に入りません。 | SHRは上位の空きビットを0で埋める論理シフトです。 |
| シフト後にビットが消えます。 | 移動したビットを保持する場合は、SHL・SHRではなくROL・RORを使用します。 |

