CPU > 命令セット > CMP

CMP (Compare Accumulator with Memory)

[アキュームレータとメモリ比較]

アキュームレータとメモリを比較し、 その結果に応じてステータスレジスタの内容を変更する。 アキュームレータとメモリの内容は変更されない。 比較には減算が利用される (アキュームレータ - メモリの値)。

16 ビットアキュームレータモードの時 (m=0)、 16 ビット幅でデータを扱う。 下位バイトは実効アドレスに、上位バイトは実効アドレス + 1 に入れる。

フラグ変化

n-----zc

n : 結果の最上位ビットの値
z : 結果が 0 の時セット
c : ボロー (桁下がり) が必要無い時セット (アキュームレータ >= メモリ)
    ボローが必要な時はセットしない (アキュームレータ < メモリ)

コード一覧

アドレッシングモード 文法 オペコード バイト数 命令サイクル
Immediate CMP #const C9 2* 2 1
Absolute CMP addr CD 3 4 1
Absolute Long CMP long CF 4 5 1
Direct Page CMP dp C5 2 3 1,2
Direct Page Indirect CMP (dp) D2 2 5 1,2
Direct Page Indirect Long CMP [dp] C7 2 6 1,2
Absolute Indexed,X CMP addr,X DD 3 4 1,3
Absolute Long Indexed,X CMP long,X DF 2 7 1
Absolute Indexed,Y CMP addr,Y D9 3 4 1,3
Direct Page Indexed,X CMP dp,X D5 2 4 1,2
Direct Page Indexed Indirect,X CMP (dp,X) C1 2 6 1,2
Direct Page Indirect Indexed,Y CMP (dp),Y D1 2 5 1,2,3
Direct Page Indirect Long Indexed,Y CMP [dp],Y D7 2 6 1,2
Stack Relative CMP sr,S C3 2 4 1
Stack Relative Indirect Indexed,Y CMP (sr,S),Y D3 2 7 1
* : m=0 (16-bit メモリ/アキュームレータ) の時 1 バイト増加
1 : m=0 (16-bit メモリ/アキュームレータ) の時 1 サイクル増加
2 : ダイレクトページレジスタの下位バイトが 0 でない場合 1 サイクル増加
3 : インデックスがページ境界をまたいだ場合 1 サイクル増加

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2017年02月20日 17:43