CPX 命令 (Compare Index Register X and Memory)
インデクスレジスタXとメモリを比較し、結果をステータスフラグへ返します。

CPXオーバーロード
オペコード 構文 アドレッシングモード バイト数 命令サイクル
E0
CPX #const
Imm.
2/ 3
2
1, 3
E4
CPX dp
DP.
2
3
1, 2
EC
CPX abs
Abs.
3
4
1


1. インデクスフラグクリア時は1サイクル追加
2. ダイレクトページの開始アドレスがページ境界になっていない場合1サイクル追加
3. インデクスフラグクリア時は3バイト。インデクスフラグセット時は2バイト。
 
フラグ変化
n-----zc

n: 比較結果のMSBがセットされる
z: 比較結果が0の場合にセットされる
c: 比較結果において符号なしボロー(桁下がり)が発生しない場合にセットされる (これは内部演算で算術オーバーフローが発生した場合と等価)
解説
CPX命令はオペコードによって指定されたアドレッシングモードに従って、オペランドで指定された値とXレジスタを比較し、その結果をステータスフラグへ返します。
比較には減算が用いられ、Xレジスタからメモリの値を引きます。この命令によってXレジスタおよびメモリの状態は変更されません。

結果が0の場合、すなわち、Xレジスタとメモリの値が等しい場合にはZフラグがセットされます。また、ボローが発生しない場合、すなわちXレジスタの値がメモリの値以上である場合はキャリーフラグがセットされます。

参照