更新日: 2023 年 3 月 18 日
BSET
BSET
ビットセット (びーせっと)
BSET.L #<data>,Dr
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | レジスタr | ||
+2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | データ |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
---|---|---|---|---|---|
下位ワード10 上位ワード12 (2/0) | 下位ワード10 上位ワード12 (2/0) | 🚧 | 🚧 | 🚧 | 1(2/0) |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | |||
Z | 変化する | テストしたビットが 0 だったときセット、さもなくばクリア | |
V | 変化しない | ||
C |
解説
- 0〜31 の <data> を Yl とします。
- Dr の全体を読み出して Xl とします。
- Xl のビット Yl をテストしてからセットします。ビット番号は 0 が最下位、31 が最上位です。
- Zl を Dr の全体へ書き込みます。
- テストの結果に応じてフラグを操作します。
BSET.B #<data>,<ea>
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | モード | レジスタr | ||||
+2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | データ |
アドレッシングモードと実行時間
モード | レジスタr | <ea> | 68000 | 68010 | 68020 | 68030 | 68040 | 68060 | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 0 | r | (Ar) | 16(3/1) | 16(3/1) | 🚧 | 🚧 | 🚧 | 1(3/1) | ||
1 | (Ar)+ | |||||||||||
1 | 0 | 0 | -(Ar) | 18(3/1) | 18(3/1) | |||||||
1 | (d16,Ar) | 20(4/1) | 20(4/1) | 2(4/1) | ||||||||
1 | 0 | (d8,Ar,Xn) | 22(4/1) | 22(4/1) | - | - | - | - | ||||
(d8,Ar,Xn*sf) | - | - | 🚧 | 🚧 | 🚧 | 2(4/1) | ||||||
(bd,Ar,Xn*sf) | 3(4〜6/1) | |||||||||||
([bd,Ar,Xn*sf],od) | 5(6〜10/1) | |||||||||||
([bd,Ar],Xn*sf,od) | ||||||||||||
1 | 0 | 0 | 0 | (xxx).W | 20(4/1) | 20(4/1) | 2(4/1) | |||||
1 | (xxx).L | 24(5/1) | 24(5/1) | 2(5/1) |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | |||
Z | 変化する | テストしたビットが 0 だったときセット、さもなくばクリア | |
V | 変化しない | ||
C |
解説
- 0〜7 の <data> を Yb とします。
- <ea> が指すバイトを読み出して Xb とします。
- Xb のビット Yb をテストしてからセットします。ビット番号は 0 が最下位、7 が最上位です。
- Zb を <ea> が指すバイトへ書き込みます。
- テストの結果に応じてフラグを操作します。
BSET.L Dq,Dr
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 0 | 0 | 0 | レジスタq | 1 | 1 | 1 | 0 | 0 | 0 | レジスタr |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
---|---|---|---|---|---|
下位ワード6 上位ワード8 (1/0) | 下位ワード6 上位ワード8 (1/0) | 🚧 | 🚧 | 🚧 | 1(1/0) |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | |||
Z | 変化する | テストしたビットが 0 だったときセット、さもなくばクリア | |
V | 変化しない | ||
C |
解説
- Dq の下位 5 ビットを Yl とします。
- Dr の全体を読み出して Xl とします。
- Xl のビット Yl をテストしてからセットします。ビット番号は 0 が最下位、31 が最上位です。
- Zl を Dr の全体へ書き込みます。
- テストの結果に応じてフラグを操作します。
BSET.B Dq,<ea>
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 0 | 0 | 0 | レジスタq | 1 | 1 | 1 | モード | レジスタr |
アドレッシングモードと実行時間
モード | レジスタr | <ea> | 68000 | 68010 | 68020 | 68030 | 68040 | 68060 | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 0 | r | (Ar) | 12(2/1) | 12(2/1) | 🚧 | 🚧 | 🚧 | 1(2/1) | ||
1 | (Ar)+ | |||||||||||
1 | 0 | 0 | -(Ar) | 14(2/1) | 14(2/1) | |||||||
1 | (d16,Ar) | 16(3/1) | 16(3/1) | 1(3/1) | ||||||||
1 | 0 | (d8,Ar,Xn) | 18(3/1) | 18(3/1) | - | - | - | - | ||||
(d8,Ar,Xn*sf) | - | - | 🚧 | 🚧 | 🚧 | 1(3/1) | ||||||
(bd,Ar,Xn*sf) | 2(3〜5/1) | |||||||||||
([bd,Ar,Xn*sf],od) | 4(5〜9/1) | |||||||||||
([bd,Ar],Xn*sf,od) | ||||||||||||
1 | 0 | 0 | 0 | (xxx).W | 16(3/1) | 16(3/1) | 1(3/1) | |||||
1 | (xxx).L | 20(4/1) | 20(4/1) | 1(4/1) |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | |||
Z | 変化する | テストしたビットが 0 だったときセット、さもなくばクリア | |
V | 変化しない | ||
C |
解説
- Dq の下位 3 ビットを Yb とします。
- <ea> が指すバイトを読み出して Xb とします。
- Xb のビット Yb をテストしてからセットします。ビット番号は 0 が最下位、7 が最上位です。
- Zl を <ea> が指すロングワードへ書き込みます。
- テストの結果に応じてフラグを操作します。