CLR
CLR
クリア (くりあ)
CLR.B <ea>
68000/68010 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | モード | レジスタr |
アドレッシングモードと実行時間
モード | レジスタr | <ea> | 68000 | 68010 | ||||
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | r | Dr | 4(1/1) | 4(1/1) | ||
1 | (Ar) | 12(2/1) | 12(2/1) | |||||
1 | (Ar)+ | |||||||
1 | 0 | 0 | -(Ar) | 14(2/1) | 14(2/1) | |||
1 | (d16,Ar) | 16(3/1) | 16(3/1) | |||||
1 | 0 | (d8,Ar,Xn) | 18(3/1) | 18(3/1) | ||||
(d8,Ar,Xn*sf) | - | - | ||||||
(bd,Ar,Xn*sf) | ||||||||
([bd,Ar,Xn*sf],od) | ||||||||
([bd,Ar],Xn*sf,od) | ||||||||
1 | 0 | 0 | 0 | (xxx).W | 16(3/1) | 16(3/1) | ||
1 | (xxx).L | 20(4/1) | 20(4/1) |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | 常にクリア | ||
Z | 常にセット | ||
V | 常にクリア | ||
C |
解説
- <ea> がメモリのとき <ea> が指すバイトを読み出します。
- $00 を <ea> が指すバイト(Dr のとき最下位バイト)へ書き込みます。
- 結果に応じてフラグを操作します。
<ea> が Dr のとき Dr の最下位バイト以外の部分は変化しません。
68000/68010 の CLR.B <ea> の動作は TST.B <ea>;MOVE.B #$00,<ea> とほぼ同じです。
CLR.B <ea>
68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | モード | レジスタr |
アドレッシングモードと実行時間
モード | レジスタr | <ea> | 68020 | 68030 | 68040 | 68060 | ||||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | r | Dr | 🚧 | 🚧 | 🚧 | 🚧 | ||
1 | (Ar) | |||||||||
1 | (Ar)+ | |||||||||
1 | 0 | 0 | -(Ar) | |||||||
1 | (d16,Ar) | |||||||||
1 | 0 | (d8,Ar,Xn) | - | - | - | - | ||||
(d8,Ar,Xn*sf) | 🚧 | 🚧 | 🚧 | 🚧 | ||||||
(bd,Ar,Xn*sf) | ||||||||||
([bd,Ar,Xn*sf],od) | ||||||||||
([bd,Ar],Xn*sf,od) | ||||||||||
1 | 0 | 0 | 0 | (xxx).W | ||||||
1 | (xxx).L |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | 常にクリア | ||
Z | 常にセット | ||
V | 常にクリア | ||
C |
解説
- $00 を <ea> が指すバイト(Dr のとき最下位バイト)へ書き込みます。
- 結果に応じてフラグを操作します。
<ea> が Dr のとき Dr の最下位バイト以外の部分は変化しません。
68020/68030/68040/68060 の CLR.B <ea> の動作は MOVE.B #$00,<ea> とほぼ同じです。
CLR.W <ea>
68000/68010 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | モード | レジスタr |
アドレッシングモードと実行時間
モード | レジスタr | <ea> | 68000 | 68010 | ||||
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | r | Dr | 4(1/1) | 4(1/1) | ||
1 | (Ar) | 12(2/1) | 12(2/1) | |||||
1 | (Ar)+ | |||||||
1 | 0 | 0 | -(Ar) | 14(2/1) | 14(2/1) | |||
1 | (d16,Ar) | 16(3/1) | 16(3/1) | |||||
1 | 0 | (d8,Ar,Xn) | 18(3/1) | 18(3/1) | ||||
(d8,Ar,Xn*sf) | - | - | ||||||
(bd,Ar,Xn*sf) | ||||||||
([bd,Ar,Xn*sf],od) | ||||||||
([bd,Ar],Xn*sf,od) | ||||||||
1 | 0 | 0 | 0 | (xxx).W | 16(3/1) | 16(3/1) | ||
1 | (xxx).L | 20(4/1) | 20(4/1) |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | 常にクリア | ||
Z | 常にセット | ||
V | 常にクリア | ||
C |
解説
- <ea> がメモリのとき <ea> が指すワードを読み出します。
- $0000 を <ea> が指すワード(Dr のとき下位ワード)へ書き込みます。
- 結果に応じてフラグを操作します。
<ea> が Dr のとき Dr の上位ワードは変化しません。
68000/68010 の CLR.W <ea> の動作は TST.W <ea>;MOVE.W #$00,<ea> とほぼ同じです。
CLR.W <ea>
68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | モード | レジスタr |
アドレッシングモードと実行時間
モード | レジスタr | <ea> | 68020 | 68030 | 68040 | 68060 | ||||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | r | Dr | 🚧 | 🚧 | 🚧 | 🚧 | ||
1 | (Ar) | |||||||||
1 | (Ar)+ | |||||||||
1 | 0 | 0 | -(Ar) | |||||||
1 | (d16,Ar) | |||||||||
1 | 0 | (d8,Ar,Xn) | - | - | - | - | ||||
(d8,Ar,Xn*sf) | 🚧 | 🚧 | 🚧 | 🚧 | ||||||
(bd,Ar,Xn*sf) | ||||||||||
([bd,Ar,Xn*sf],od) | ||||||||||
([bd,Ar],Xn*sf,od) | ||||||||||
1 | 0 | 0 | 0 | (xxx).W | ||||||
1 | (xxx).L |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | 常にクリア | ||
Z | 常にセット | ||
V | 常にクリア | ||
C |
解説
- $0000 を <ea> が指すワード(Dr のとき下位ワード)へ書き込みます。
- 結果に応じてフラグを操作します。
<ea> が Dr のとき Dr の上位ワードは変化しません。
68020/68030/68040/68060 の CLR.W <ea> の動作は MOVE.W #$00,<ea> とほぼ同じです。
CLR.L <ea>
68000/68010 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | モード | レジスタr |
アドレッシングモードと実行時間
モード | レジスタr | <ea> | 68000 | 68010 | ||||
---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | r | Dr | 6(1/2) | 6(1/2) | ||
1 | (Ar) | 20(3/2) | 20(3/2) | |||||
1 | (Ar)+ | |||||||
1 | 0 | 0 | -(Ar) | 22(3/2) | 22(3/2) | |||
1 | (d16,Ar) | 24(4/2) | 24(4/2) | |||||
1 | 0 | (d8,Ar,Xn) | 26(4/2) | 26(4/2) | ||||
(d8,Ar,Xn*sf) | - | - | ||||||
(bd,Ar,Xn*sf) | ||||||||
([bd,Ar,Xn*sf],od) | ||||||||
([bd,Ar],Xn*sf,od) | ||||||||
1 | 0 | 0 | 0 | (xxx).W | 24(4/2) | 24(4/2) | ||
1 | (xxx).L | 28(5/2) | 28(5/2) |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | 常にクリア | ||
Z | 常にセット | ||
V | 常にクリア | ||
C |
解説
- <ea> がメモリのとき <ea> が指すロングワードを読み出します。
- $00000000 を <ea> が指すロングワード(Dr のとき全体)へ書き込みます。
- 結果に応じてフラグを操作します。
68000/68010 の CLR.L <ea> の動作は TST.L <ea>;MOVE.L #$00,<ea> とほぼ同じです。
CLR.L <ea>
68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | モード | レジスタr |
アドレッシングモードと実行時間
モード | レジスタr | <ea> | 68020 | 68030 | 68040 | 68060 | ||||
---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | r | Dr | 🚧 | 🚧 | 🚧 | 🚧 | ||
1 | (Ar) | |||||||||
1 | (Ar)+ | |||||||||
1 | 0 | 0 | -(Ar) | |||||||
1 | (d16,Ar) | |||||||||
1 | 0 | (d8,Ar,Xn) | - | - | - | - | ||||
(d8,Ar,Xn*sf) | 🚧 | 🚧 | 🚧 | 🚧 | ||||||
(bd,Ar,Xn*sf) | ||||||||||
([bd,Ar,Xn*sf],od) | ||||||||||
([bd,Ar],Xn*sf,od) | ||||||||||
1 | 0 | 0 | 0 | (xxx).W | ||||||
1 | (xxx).L |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
---|---|---|---|
X | 使用しない | 変化しない | |
N | 常にクリア | ||
Z | 常にセット | ||
V | 常にクリア | ||
C |
解説
- $00000000 を <ea> が指すロングワード(Dr のとき全体)へ書き込みます。
- 結果に応じてフラグを操作します。
68020/68030/68040/68060 の CLR.L <ea> の動作は MOVE.L #$00,<ea> とほぼ同じです。
CLR.W Ar
68000/68010/68020/68030/68040/68060 の命令 SUBA.W Ar,Ar の別名
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 1 | 0 | 0 | 1 | レジスタr | 0 | 1 | 1 | 0 | 0 | 1 | レジスタr |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
---|---|---|---|---|---|
8(1/0) | 8(1/0) | 🚧 | 🚧 | 🚧 | 🚧 |
コンディションコード
フラグ | 入力 | 出力 |
---|---|---|
X | 使用しない | 変化しない |
N | ||
Z | ||
V | ||
C |
解説
- Ar の下位ワードを読み出して Yw とします。
- Yw をロングワードに符号拡張したものを Yl とします。
- Ar の全体を読み出して Xl とします。
- Xl から Yl を引いた結果を Zl とします。
- Zl を Ar の全体へ書き込みます。
オペレーションサイズはワードですが Ar の全体が変化します。
フラグは変化しません。
Ar の下位ワードがクリアされます。MOVEA.W #$0000,Ar と違って Ar の上位ワードはクリアされません。
CLR.L Ar
68000/68010/68020/68030/68040/68060 の命令 SUBA.L Ar,Ar の別名
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+0 | 1 | 0 | 0 | 1 | レジスタr | 1 | 1 | 1 | 0 | 0 | 1 | レジスタr |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
---|---|---|---|---|---|
8(1/0) | 8(1/0) | 🚧 | 🚧 | 🚧 | 🚧 |
コンディションコード
フラグ | 入力 | 出力 |
---|---|---|
X | 使用しない | 変化しない |
N | ||
Z | ||
V | ||
C |
解説
Ar の全体がクリアされます。
フラグは変化しません。