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

ANDI

ANDI

即値論理積 (あんどあい)


ANDI.B #<data>,CCR

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

命令コード

アドレス1514131211109876543210
+00000001000111100
+200000000バイトデータ

実行時間

680006801068020680306804068060
20(2/0)20(2/0)🚧🚧🚧🚧

コンディションコード

フラグ入力出力説明
X使用する変化する結果のビット 4
N結果のビット 3
Z結果のビット 2
V結果のビット 1
C結果のビット 0

解説

  1. バイトの <data> を Yb とします。
  2. CCR を読み出して Xb とします。
  3. Xb と Yb のビット毎の論理積を Zb とします。
  4. Zw を CCR へ書き込みます。
CCR
76543210
000XNZVC

ANDI.B #<data>,<ea>

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

命令コード

アドレス1514131211109876543210
+00000001000モードレジスタr
+200000000バイトデータ

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

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

コンディションコード

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

解説

  1. バイトの <data> を Yb とします。
  2. <ea> が指すバイト(Dr のとき最下位バイト)を読み出して Xb とします。
  3. Xb と Yb のビット毎の論理積を Zb とします。
  4. 結果に応じてフラグを操作します。
  5. Zb を <ea> が指すバイト(Dr のとき最下位バイト)へ書き込みます。

<ea> が Dr のとき Dr の最下位バイト以外の部分は変化しません。


ANDI.W #<data>,SR

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

命令コード

アドレス1514131211109876543210
+00000001001111100
+2ワードデータ

実行時間

680006801068020680306804068060
20(2/0)20(2/0)🚧🚧🚧🚧

コンディションコード

フラグ入力出力説明
X使用する変化する結果のビット 4
N結果のビット 3
Z結果のビット 2
V結果のビット 1
C結果のビット 0

解説

  1. ユーザモードのとき特権違反例外処理を開始します。
  2. ワードの <data> を Yw とします。
  3. SR を読み出して Xw とします。
  4. Xw と Yw のビット毎の論理積を Zw とします。
  5. Zw を SR へ書き込みます。
  6. SR のビット 13 が 0 になったときユーザモードへ移行します。
68000/68010のSR
1514131211109876543210
T0S00I2I1I0000XNZVC
68020/68030/68040のSR
1514131211109876543210
T1T0SM0I2I1I0000XNZVC
68060のSR
1514131211109876543210
T0SM0I2I1I0000XNZVC

ANDI.W #<data>,<ea>

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

命令コード

アドレス1514131211109876543210
+00000001001モードレジスタr
+2ワードデータ

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

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

コンディションコード

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

解説

  1. ワードの <data> を Yw とします。
  2. <ea> が指すワード(Dr のとき下位ワード)を読み出して Xw とします。
  3. Xw と Yw のビット毎の論理積を Zw とします。
  4. 結果に応じてフラグを操作します。
  5. Zw を <ea> が指すワード(Dr のとき下位ワード)へ書き込みます。

<ea> が Dr のとき Dr の上位ワードは変化しません。


ANDI.L #<data>,<ea>

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

命令コード

アドレス1514131211109876543210
+00000001010モードレジスタr
+2ロングワードデータの上位ワード
+4ロングワードデータの下位ワード

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

モードレジスタr<ea>680006801068020680306804068060
000rDr16(3/0)16(3/0)🚧🚧🚧🚧
1(Ar)28(5/2)28(5/2)
1(Ar)+
100-(Ar)30(5/2)30(5/2)
1(d16,Ar)32(6/2)32(6/2)
10(d8,Ar,Xn)34(6/2)34(6/2)----
(d8,Ar,Xn*sf)--🚧🚧🚧🚧
(bd,Ar,Xn*sf)
([bd,Ar,Xn*sf],od)
([bd,Ar],Xn*sf,od)
1000(xxx).W32(6/2)32(6/2)
1(xxx).L36(7/2)36(7/2)

コンディションコード

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

解説

  1. ロングワードの <data> を Yl とします。
  2. <ea> が指すロングワード(Dr のとき全体)を読み出して Xl とします。
  3. Xl と Yl のビット毎の論理積を Zl とします。
  4. 結果に応じてフラグを操作します。
  5. Zl を <ea> が指すロングワード(Dr のとき全体)へ書き込みます。