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

SUBA

SUBA

アドレス減算 (さぶえー)


SUBA.W <ea>,Aq

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

命令コード

アドレス1514131211109876543210
+01001レジスタq011モードレジスタr

アドレッシングモードと実行時間

モードレジスタr<ea>680006801068020680306804068060
000rDr8(1/0)8(1/0)🚧🚧🚧🚧
1Ar
10(Ar)12(2/0)12(2/0)
1(Ar)+
100-(Ar)14(2/0)14(2/0)
1(d16,Ar)16(3/0)16(3/0)
10(d8,Ar,Xn)18(3/0)18(3/0)----
(d8,Ar,Xn*sf)--🚧🚧🚧🚧
(bd,Ar,Xn*sf)
([bd,Ar,Xn*sf],od)
([bd,Ar],Xn*sf,od)
1000(xxx).W16(3/0)16(3/0)
1(xxx).L20(4/0)20(4/0)
10(d16,PC)16(3/0)16(3/0)
1(d8,PC,Xn)18(3/0)18(3/0)----
(d8,PC,Xn*sf)--🚧🚧🚧🚧
(bd,PC,Xn*sf)
([bd,PC,Xn*sf],od)
([bd,PC],Xn*sf,od)
100#<data>12(2/0)12(2/0)

コンディションコード

フラグ入力出力
X使用しない変化しない
N
Z
V
C

解説

  1. <ea> が指すワード(Dr のとき下位ワード)を読み出して Yw とします。
  2. Yw をロングワードに符号拡張したものを Yl とします。
  3. Aq の全体を読み出して Xl とします。
  4. Xl から Yl を引いた結果を Zl とします。
  5. Zl を Aq の全体へ書き込みます。

オペレーションサイズはワードですが Aq の全体が変化します。

フラグは変化しません。


SUBA.L <ea>,Aq

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

命令コード

アドレス1514131211109876543210
+01001レジスタq111モードレジスタr

アドレッシングモードと実行時間

モードレジスタr<ea>680006801068020680306804068060
000rDr8(1/0)8(1/0)🚧🚧🚧🚧
1Ar
10(Ar)14(3/0)14(3/0)
1(Ar)+
100-(Ar)16(3/0)16(3/0)
1(d16,Ar)18(4/0)18(4/0)
10(d8,Ar,Xn)20(4/0)20(4/0)----
(d8,Ar,Xn*sf)--🚧🚧🚧🚧
(bd,Ar,Xn*sf)
([bd,Ar,Xn*sf],od)
([bd,Ar],Xn*sf,od)
1000(xxx).W18(4/0)18(4/0)
1(xxx).L22(5/0)22(5/0)
10(d16,PC)18(4/0)18(4/0)
1(d8,PC,Xn)20(4/0)20(4/0)----
(d8,PC,Xn*sf)--🚧🚧🚧🚧
(bd,PC,Xn*sf)
([bd,PC,Xn*sf],od)
([bd,PC],Xn*sf,od)
100#<data>16(3/0)16(3/0)

コンディションコード

フラグ入力出力
X使用しない変化しない
N
Z
V
C

解説

  1. <ea> が指すロングワード(Dr のとき全体)を読み出して Yl とします。
  2. Aq の全体を読み出して Xl とします。
  3. Xl から Yl を引いた結果を Zl とします。
  4. Zl を Aq の全体へ書き込みます。

フラグは変化しません。