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

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


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

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

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

参照