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