更新日: 2023 年 3 月 18 日
ADDX
ADDX
拡張加算 (あっどえっくす)
ADDX.B Dr,Dq
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+0 | 1 | 1 | 0 | 1 | レジスタq | 1 | 0 | 0 | 0 | 0 | 0 | レジスタr |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
4(1/0) | 4(1/0) | 🚧 | 🚧 | 🚧 | 🚧 |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
X | 使用する | 変化する | キャリーがあるときセット、さもなくばクリア |
N | 使用しない | 結果の最上位ビット |
Z | 結果が 0 のときセット、さもなくばクリア |
V | オーバーフローしたときセット、さもなくばクリア |
C | キャリーがあるときセット、さもなくばクリア |
解説
- Dr の最下位バイトを読み出して Yb とします。
- Dq の最下位バイトを読み出して Xb とします。
- Xb に Yb と X フラグを足した結果を Zb とします。
- 結果に応じてフラグを操作します。
- Zb を Dq の最下位バイトへ書き込みます。
Dq の最下位バイト以外の部分は変化しません。
ADDX.B -(Ar),-(Aq)
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+0 | 1 | 1 | 0 | 1 | レジスタq | 1 | 0 | 0 | 0 | 0 | 1 | レジスタr |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
18(3/1) | 18(3/1) | 🚧 | 🚧 | 🚧 | 🚧 |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
X | 使用する | 変化する | キャリーがあるときセット、さもなくばクリア |
N | 使用しない | 結果の最上位ビット |
Z | 結果が 0 のときセット、さもなくばクリア |
V | オーバーフローしたときセット、さもなくばクリア |
C | キャリーがあるときセット、さもなくばクリア |
解説
- Ar から 1 を引きます。
- Ar が指すバイトを読み出して Yb とします。
- Aq から 1 を引きます。
- Aq が指すバイトを読み出して Xb とします。
- Xb に Yb と X フラグを足した結果を Zb とします。
- 結果に応じてフラグを操作します。
- Zb を Aq が指すバイトへ書き込みます。
ADDX.W Dr,Dq
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+0 | 1 | 1 | 0 | 1 | レジスタq | 1 | 0 | 1 | 0 | 0 | 0 | レジスタr |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
4(1/0) | 4(1/0) | 🚧 | 🚧 | 🚧 | 🚧 |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
X | 使用する | 変化する | キャリーがあるときセット、さもなくばクリア |
N | 使用しない | 結果の最上位ビット |
Z | 結果が 0 のときセット、さもなくばクリア |
V | オーバーフローしたときセット、さもなくばクリア |
C | キャリーがあるときセット、さもなくばクリア |
解説
- Dr の下位ワードを読み出して Yw とします。
- Dq の下位ワードを読み出して Xw とします。
- Xw に Yw と X フラグを足した結果を Zw とします。
- 結果に応じてフラグを操作します。
- Zw を Dq の下位ワードへ書き込みます。
Dq の上位ワードは変化しません。
ADDX.W -(Ar),-(Aq)
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+0 | 1 | 1 | 0 | 1 | レジスタq | 1 | 0 | 1 | 0 | 0 | 1 | レジスタr |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
18(3/1) | 18(3/1) | 🚧 | 🚧 | 🚧 | 🚧 |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
X | 使用する | 変化する | キャリーがあるときセット、さもなくばクリア |
N | 使用しない | 結果の最上位ビット |
Z | 結果が 0 のときセット、さもなくばクリア |
V | オーバーフローしたときセット、さもなくばクリア |
C | キャリーがあるときセット、さもなくばクリア |
解説
- Ar から 2 を引きます。
- Ar が指すワードを読み出して Yw とします。
- Aq から 2 を引きます。
- Aq が指すワードを読み出して Xw とします。
- Xw に Yw と X フラグを足した結果を Zw とします。
- 結果に応じてフラグを操作します。
- Zw を Aq が指すワードへ書き込みます。
ADDX.L Dr,Dq
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+0 | 1 | 1 | 0 | 1 | レジスタq | 1 | 1 | 0 | 0 | 0 | 0 | レジスタr |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
8(1/0) | 8(1/0) | 🚧 | 🚧 | 🚧 | 🚧 |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
X | 使用する | 変化する | キャリーがあるときセット、さもなくばクリア |
N | 使用しない | 結果の最上位ビット |
Z | 結果が 0 のときセット、さもなくばクリア |
V | オーバーフローしたときセット、さもなくばクリア |
C | キャリーがあるときセット、さもなくばクリア |
解説
- Dr の全体を読み出して Yl とします。
- Dq の全体を読み出して Xl とします。
- Xl に Yl と X フラグを足した結果を Zl とします。
- 結果に応じてフラグを操作します。
- Zl を Dq の全体へ書き込みます。
ADDX.L -(Ar),-(Aq)
68000/68010/68020/68030/68040/68060 の命令
命令コード
アドレス | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+0 | 1 | 1 | 0 | 1 | レジスタq | 1 | 1 | 0 | 0 | 0 | 1 | レジスタr |
実行時間
68000 | 68010 | 68020 | 68030 | 68040 | 68060 |
30(5/2) | 30(5/2) | 🚧 | 🚧 | 🚧 | 🚧 |
コンディションコード
フラグ | 入力 | 出力 | 説明 |
X | 使用する | 変化する | キャリーがあるときセット、さもなくばクリア |
N | 使用しない | 結果の最上位ビット |
Z | 結果が 0 のときセット、さもなくばクリア |
V | オーバーフローしたときセット、さもなくばクリア |
C | キャリーがあるときセット、さもなくばクリア |
解説
- Ar から 4 を引きます。
- Ar が指すロングワードを読み出して Yl とします。
- Aq から 4 を引きます。
- Aq が指すロングワードを読み出して Xl とします。
- Xl に Yl と X フラグを足した結果を Zl とします。
- 結果に応じてフラグを操作します。
- Zl を Aq が指すロングワードへ書き込みます。