CMP (CoMPare A) この命令で変更されうるフラグ:ネガティブフラグ、ゼロフラグ、キャリーフラグ
CMP #??
アキュムレータと指定された実数との比較を行います。
その結果によってフラグの変更を行います。
内部処理においては、アキュムレータから指定された値の引き算を行っています。
SBCとの違いは、アキュムレータの値はそのまま、オーバーフローフラグは変更されない、
キャリーフラグが0でもさらに1引かれることはない、と言った点で異なります。
前者と後者の値でどのようにフラグが変更されるかは以下の通りです。

以下はAの値を$90とします。

比較対象の値がAより小さいとき。さらに引き算の結果が$80未満の時
CMP #$30 ネガティブフラグ:0 ゼロフラグ:0 キャリーフラグ:1

比較対象の値がAより小さいとき。さらに引き算の結果が$80以上の時
CMP #$08 ネガティブフラグ:1 ゼロフラグ:0 キャリーフラグ:1

比較対象の値がAと等しいとき。
CMP #$90 ネガティブフラグ:0 ゼロフラグ:1 キャリーフラグ:1

比較対象の値がAより大きいとき。さらに引き算の結果が$80以上の時
CMP #$A0 ネガティブフラグ:1 ゼロフラグ:0 キャリーフラグ:0

比較対象の値がAより大きいとき。さらに引き算の結果が$80未満の時。Aの値を10とする。
CMP #$E0 ネガティブフラグ:0 ゼロフラグ:0 キャリーフラグ:0


CMP $??
アキュムレータの値をダイレクトモードで指定されたアドレスのRAMの値と比較します。
以下説明略。
CMP $??
CMP $????
CMP $??????
CMP $??,x
CMP $????,x
CMP $????,y
CMP $??????,x
CMP ($??)
CMP ($??),y
CMP [$??]
CMP [$??],y
CMP ($??,x)
CMP $sr,s
CMP ($sr,s),y


CPX (ComPare X) この命令で変更されうるフラグ:ネガティブフラグ、ゼロフラグ、キャリーフラグ
CPX #$??
Xの値を指定された実数と比較します。
以下説明略。
CPX $??
CPX $????


CPY (ComPare Y) この命令で変更されうるフラグ:ネガティブフラグ、ゼロフラグ、キャリーフラグ
CPY #$??
Yの値を指定された実数と比較します。
以下説明略。
CPY $??
CPY $????