CPU > 命令セット > ADC

ADC (Add with carry)

[キャリー付き加算]

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 サイクル増加
最終更新:2017年02月20日 17:27