「CPU」の編集履歴(バックアップ)一覧はこちら
「CPU」(2017/02/20 (月) 16:48:29) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
***目次 [#g3ce6a93]
-[[レジスタ>CPU/レジスタ]]
-[[アドレッシングモード>CPU/アドレッシングモード]]
-[[命令セット一覧 (アルファベット順)>CPU/命令セット]]
-[[命令セット一覧 (機能別)>CPU/命令セット/一覧 (機能別)]]
-[[命令セット一覧 (オペコード順)>CPU/命令セット/一覧 (オペコード順)]]
***概要 [#tfef66c4]
SNES の CPU には、NES の CPU の 6502 をエミュレーションするモードがあり、
ステータスフラグにエミュレーションフラグを立てることで
切り替えができるようになっている。
これは、 NES のプログラマが SNES にスムーズに移行しやすくするためであると共に、
NES のゲームを SNES で動かせるようにするための措置だと思われるが、
実際には、NES のゲームを SNES で動かせるようにするようなアダプタは、
オフィシャルには発売されていない。
SNES の CPU は、ほとんどの動作が NES の CPU である 6502 と互換性があるが、
16 ビット単位のデータが扱えるようになっており、
それに関連してレジスタの本数と、命令が若干増えている。
24 ビットのアドレスバスも扱えるようになっており、
それに伴って増えた、アドレス指定用レジスタの影響で、
アドレッシングモードが複雑になっている。
通常、アドレスは 16 ビット単位で指定するが、
24 ビット分をフルに指定する時、上位 8 ビットを "バンク" として扱う。
バンクは、CPU 内のバンクレジスタの操作により切り替えることができる。
CPU 内で乗算と除算を直接行うことができないので、
これらの演算が必要な場合は、I/O ポートから乗算・除算用コプロセッサに
データを渡して、しばらくウエイトを入れた後、
別の結果取得用ポートから計算結果を取得する。