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

CHK

CHK

チェック (ちぇっく)


CHK.L <ea>,Dq

68020/68030/68040/68060 の命令

命令コード

アドレス1514131211109876543210
+00100レジスタq100モードレジスタr

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

モードレジスタr<ea>68020680306804068060
000rDr🚧🚧🚧🚧
1(Ar)
1(Ar)+
100-(Ar)
1(d16,Ar)
10(d8,Ar,Xn)----
(d8,Ar,Xn*sf)🚧🚧🚧🚧
(bd,Ar,Xn*sf)
([bd,Ar,Xn*sf],od)
([bd,Ar],Xn*sf,od)
1000(xxx).W
1(xxx).L
10(d16,PC)
1(d8,PC,Xn)----
(d8,PC,Xn*sf)🚧🚧🚧🚧
(bd,PC,Xn*sf)
([bd,PC,Xn*sf],od)
([bd,PC],Xn*sf,od)
100#<data>

コンディションコード

フラグ入力出力説明
X使用しない変化しない
N変化する🚧
Z未定義
V
C

解説

🚧


CHK.W <ea>,Dq

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

命令コード

アドレス1514131211109876543210
+00100レジスタq110モードレジスタr

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

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

コンディションコード

フラグ入力出力説明
X使用しない変化しない
N変化する符号あり比較で Dq が負のときセット、<ea> より大きいときクリア、さもなくば未定義
68000/68030/68060 は Dq の最上位ビット
Z未定義68000/68030 は Dq が 0 のときセット、さもなくばクリア
68060 は変化しない
V68000/68030 は <ea> から Dq を引いてオーバーフローしたときセット、さもなくばクリア
68060 は変化しない
C68000/68030 は <ea> から Dq を引いてキャリーがあるときセット、さもなくばクリア
68060 は変化しない

解説

  1. <ea> が指すワード(Dr のとき下位ワード)を読み出して Yw とします。
  2. Dq の下位ワードを読み出して Xw とします。
  3. 符号あり比較で Xw<0 のとき N フラグをセット、Yw<Xw のとき N フラグをクリアします。どちらでもないとき N フラグは未定義です。
  4. Z フラグ、V フラグ、C フラグは未定義です。
  5. 符号あり比較で Xw<0 または Yw<Xw のとき CHK 命令例外処理を開始します。