***ADC (Add with carry) [#m4b5c365] [キャリー付き加算] 16 ビットアキュームレータモードの時、 キャリーは操作によって生成された時、 7 ビット目から 8 ビット目へ 適切に移動されるだろう (すなわち、$FF+4 = $0103 の $01 は アキュームレータの上位バイトへ、$03 は下位バイトへ入る)。 なので、キャリーは下位バイトが加算された時にクリアされる必要がある。 8 ビットアキュームレータモードと同様に、手動で 15 ビット目の上にキャリーがないかチェックする必要がある。 16 ビットモードの時、下位バイトが実効アドレスに置かれる。 上位バイトは、実行アドレス + 1 に置かれる。 ''フラグ変化'' nv----zc n : 結果の最上位ビット v : サインドオーバーフローがあった時 1 z : 結果が 0 の時 1 c : オーバーフローした時 1 -注 : [[サインドオーバーフロー>CPU/命令セット/Signed Overflow]] ''コード一覧'' |アドレッシングモード|文法|オペコード|バイト数|命令サイクル|注|h |[[Immediate>CPU/アドレッシングモード/Immediate]]|ADC #const |69|2*|2 | 1| |[[Absolute>CPU/アドレッシングモード/Absolute]]|ADC addr |6D|3 |4 | 1| |[[Absolute Long>CPU/アドレッシングモード/Absolute Long]]|ADC long |6F|4 |5 | 1| |[[Direct Page>CPU/アドレッシングモード/Direct Page]]|ADC dp |65|2 |3 | 1,2| |[[Direct Page Indirect>CPU/アドレッシングモード/Direct Page Indirect]]|ADC (dp) |72|2 |5 | 1,2| |[[Direct Page Indirect Long>CPU/アドレッシングモード/Direct Page Indirect Long]]|ADC [dp] |67|2 |6 | 1,2| |[[Absolute Indexed,X>CPU/アドレッシングモード/Absolute Indexed,X]]|ADC addr,X |7D|3 |4 | 1,3| |[[Absolute Long Indexed,X>CPU/アドレッシングモード/Absolute Long Indexed,X]]|ADC long,X |7F|4 |5 | 1| |[[Absolute Indexed,Y>CPU/アドレッシングモード/Absolute Indexed,Y]]|ADC addr,Y |79|3 |4 | 1,3| |[[Direct Page Indexed,X>CPU/アドレッシングモード/Direct Page Indexed,X]]|ADC dp,X |75|2 |4 | 1,2| |[[Direct Page Indexed Indirect,X>CPU/アドレッシングモード/Direct Page Indexed Indirect,X]]|ADC (dp,X) |61|2 |6 | 1,2| |[[Direct Page Indirect Indexed,Y>CPU/アドレッシングモード/Direct Page Indirect Indexed,Y]]|ADC (dp),Y |71|2 |5 | 1,2,3| |[[Direct Page Indirect Long Indexed,Y>CPU/アドレッシングモード/Direct Page Indirect Long Indexed,Y]]|ADC [dp],Y |77|2 |6 | 1,2| |[[Stack Relative>CPU/アドレッシングモード/Stack Relative]]|ADC sr,S |63|2 |4 | 1| |[[Stack Relative Indirect Indexed,Y>CPU/アドレッシングモード/Stack Relative Indirect Indexed,Y]]|ADC (sr,S),Y |73|2 |7 | 1| ''注'' * : m=0 の時 1 バイト増加 (16-bit メモリ/アキュームレータ) 1 : m=0 の時 1 サイクル増加 (16-bit メモリ/アキュームレータ) 2 : ダイレクトページレジスタの下位バイトが 0 でない場合 1 サイクル増加 3 : インデックスがページ境界をまたいだ場合 1 サイクル増加