CPU > 命令セット > SBC

SBC (Subtract from Accumulator)

[アキュームレータから減算]

SBC は 6502 のものと同じように動作する。 違いは、新しいアドレッシングモードと、16 ビットアキュームレータ、 16 ビットメモリ位置が使えるようになったことだけである。 SBC と ADC の16ビットメモリ/アキュームレータモードは、 65816 の使い勝手を大幅に向上させる。 プログラマは、8 ビットモードの代わりに 16 ビットモードを使用したとき、 どれほど加算・減算が速くなったかを簡単に知ることができる。

フラグ変化

nv----zc

n : 結果の最上位ビットの値
v : サインドオーバーフローがあった時セット
z : 結果が 0 の時セット
c : 符号無しボロー (桁下がり) が必要ない時セット

コード一覧

アドレッシングモード 文法 オペコード バイト数 命令サイクル
Immediate SBC #const E9 2* 2 1
Absolute SBC addr ED 3 4 1
Absolute Long SBC long EF 4 5 1
Direct Page SBC dp E5 2 3 1,2
Direct Page Indirect SBC (dp) F2 2 5 1,2
Direct Page Indirect Long SBC [dp] E7 2 6 1,2
Absolute Indexed,X SBC addr,X FD 3 4 1,3
Absolute Long Indexed,X SBC long,X FF 4 5 1
Absolute Indexed,Y SBC addr,Y F9 3 4 1,3
Direct Page Indexed,X SBC dp,X F5 2 4 1,2
Direct Page Indexed Indirect,X SBC (dp,X) E1 2 6 1,2
Direct Page Indirect Indexed,Y SBC (dp),Y F1 2 5 1,2,3
Direct Page Indirect Long Indexed,Y SBC [dp],Y F7 2 6 1,2
Stack Relative SBC sr,S E3 2 4 1
Stack Relative Indirect Indexed,Y SBC (sr,S),Y F3 2 7 1

* : m=0 (16-bit メモリ/アキュームレータ) の時 1 バイト増加
1 : m=0 (16-bit メモリ/アキュームレータ) の時 1 サイクル増加
2 : ダイレクトページレジスタの下位バイトが 0 でない場合 1 サイクル増加
3 : インデックスがページ境界をまたいだ場合 1 サイクル増加
最終更新:2017年02月20日 17:46