countersince January 6, 2001X68000 LIBRARYEnglish
更新日: 2023 年 3 月 18 日
X68000 LIBRARY > 資料室 > 命令セットリファレンス(準備中) > A > ADDX

ADDX

ADDX

拡張加算 (あっどえっくす)


ADDX.B Dr,Dq

68000/68010/68020/68030/68040/68060 の命令

命令コード

アドレス1514131211109876543210
+01101レジスタq100000レジスタr

実行時間

680006801068020680306804068060
4(1/0)4(1/0)🚧🚧🚧🚧

コンディションコード

フラグ入力出力説明
X使用する変化するキャリーがあるときセット、さもなくばクリア
N使用しない結果の最上位ビット
Z結果が 0 のときセット、さもなくばクリア
Vオーバーフローしたときセット、さもなくばクリア
Cキャリーがあるときセット、さもなくばクリア

解説

  1. Dr の最下位バイトを読み出して Yb とします。
  2. Dq の最下位バイトを読み出して Xb とします。
  3. Xb に Yb と X フラグを足した結果を Zb とします。
  4. 結果に応じてフラグを操作します。
  5. Zb を Dq の最下位バイトへ書き込みます。

Dq の最下位バイト以外の部分は変化しません。


ADDX.B -(Ar),-(Aq)

68000/68010/68020/68030/68040/68060 の命令

命令コード

アドレス1514131211109876543210
+01101レジスタq100001レジスタr

実行時間

680006801068020680306804068060
18(3/1)18(3/1)🚧🚧🚧🚧

コンディションコード

フラグ入力出力説明
X使用する変化するキャリーがあるときセット、さもなくばクリア
N使用しない結果の最上位ビット
Z結果が 0 のときセット、さもなくばクリア
Vオーバーフローしたときセット、さもなくばクリア
Cキャリーがあるときセット、さもなくばクリア

解説

  1. Ar から 1 を引きます。
  2. Ar が指すバイトを読み出して Yb とします。
  3. Aq から 1 を引きます。
  4. Aq が指すバイトを読み出して Xb とします。
  5. Xb に Yb と X フラグを足した結果を Zb とします。
  6. 結果に応じてフラグを操作します。
  7. Zb を Aq が指すバイトへ書き込みます。

ADDX.W Dr,Dq

68000/68010/68020/68030/68040/68060 の命令

命令コード

アドレス1514131211109876543210
+01101レジスタq101000レジスタr

実行時間

680006801068020680306804068060
4(1/0)4(1/0)🚧🚧🚧🚧

コンディションコード

フラグ入力出力説明
X使用する変化するキャリーがあるときセット、さもなくばクリア
N使用しない結果の最上位ビット
Z結果が 0 のときセット、さもなくばクリア
Vオーバーフローしたときセット、さもなくばクリア
Cキャリーがあるときセット、さもなくばクリア

解説

  1. Dr の下位ワードを読み出して Yw とします。
  2. Dq の下位ワードを読み出して Xw とします。
  3. Xw に Yw と X フラグを足した結果を Zw とします。
  4. 結果に応じてフラグを操作します。
  5. Zw を Dq の下位ワードへ書き込みます。

Dq の上位ワードは変化しません。


ADDX.W -(Ar),-(Aq)

68000/68010/68020/68030/68040/68060 の命令

命令コード

アドレス1514131211109876543210
+01101レジスタq101001レジスタr

実行時間

680006801068020680306804068060
18(3/1)18(3/1)🚧🚧🚧🚧

コンディションコード

フラグ入力出力説明
X使用する変化するキャリーがあるときセット、さもなくばクリア
N使用しない結果の最上位ビット
Z結果が 0 のときセット、さもなくばクリア
Vオーバーフローしたときセット、さもなくばクリア
Cキャリーがあるときセット、さもなくばクリア

解説

  1. Ar から 2 を引きます。
  2. Ar が指すワードを読み出して Yw とします。
  3. Aq から 2 を引きます。
  4. Aq が指すワードを読み出して Xw とします。
  5. Xw に Yw と X フラグを足した結果を Zw とします。
  6. 結果に応じてフラグを操作します。
  7. Zw を Aq が指すワードへ書き込みます。

ADDX.L Dr,Dq

68000/68010/68020/68030/68040/68060 の命令

命令コード

アドレス1514131211109876543210
+01101レジスタq110000レジスタr

実行時間

680006801068020680306804068060
8(1/0)8(1/0)🚧🚧🚧🚧

コンディションコード

フラグ入力出力説明
X使用する変化するキャリーがあるときセット、さもなくばクリア
N使用しない結果の最上位ビット
Z結果が 0 のときセット、さもなくばクリア
Vオーバーフローしたときセット、さもなくばクリア
Cキャリーがあるときセット、さもなくばクリア

解説

  1. Dr の全体を読み出して Yl とします。
  2. Dq の全体を読み出して Xl とします。
  3. Xl に Yl と X フラグを足した結果を Zl とします。
  4. 結果に応じてフラグを操作します。
  5. Zl を Dq の全体へ書き込みます。

ADDX.L -(Ar),-(Aq)

68000/68010/68020/68030/68040/68060 の命令

命令コード

アドレス1514131211109876543210
+01101レジスタq110001レジスタr

実行時間

680006801068020680306804068060
30(5/2)30(5/2)🚧🚧🚧🚧

コンディションコード

フラグ入力出力説明
X使用する変化するキャリーがあるときセット、さもなくばクリア
N使用しない結果の最上位ビット
Z結果が 0 のときセット、さもなくばクリア
Vオーバーフローしたときセット、さもなくばクリア
Cキャリーがあるときセット、さもなくばクリア

解説

  1. Ar から 4 を引きます。
  2. Ar が指すロングワードを読み出して Yl とします。
  3. Aq から 4 を引きます。
  4. Aq が指すロングワードを読み出して Xl とします。
  5. Xl に Yl と X フラグを足した結果を Zl とします。
  6. 結果に応じてフラグを操作します。
  7. Zl を Aq が指すロングワードへ書き込みます。