|
|
6502はアメリカ・MOSテクノロジー社の8ビットCPUである 。
| Table of contents |
|
2 6502のレジスタセット 3 命令セット 4 互換CPU |
比較的早期に情報が公開されたため、アメリカのホビーストの間ではポピュラーな存在となった。
レジスタを小さく、少なくし、ハードウェア規模を減らして高速化を図ったのではないかと見られるフシがある。
最初、NMOSプロセスで生産されたが、後にCMOS版の65C02が登場した。65C02では、STZ(値$00のストア)やBRA(無条件相対分岐)といった命令が追加された。
Apple IIに搭載されて一躍有名になり、その後PET2001やVIC-1001、Commodore64等、主にCommodore社の製品で採用されているが、日本ではパソコン用のCPUとしてはそれほど普及しなかったようだ。概要
その代わりに、0から255番地までのメモリをレジスタ同様に使える、やたらとアドレッシングモードが豊富(インデックストインダイレクト、インダイレクトインデックストで動作が違う)など、かなり変わった設計だった。
| 呼称 | 説明 |
| P | プロセッサステータス |
| A | アキュムレータ |
| X | インデックスレジスタX |
| Y | インデックスレジスタY |
| PC | プラグラムカウンタ |
| S | スタックポインタ |
| 呼称 | 記述 | 説明 |
| イミディエイト | #nn | 直接8ビットの値を指定する。 |
| アブソリュート | nnnn | 直接16ビットの番地を指定する。 |
| ゼロページ | nn | ゼロページの番地を下位8ビットで指定する。 |
| リラティブ | nn | 命令直後から-128~+127の範囲の相対番地を指定する。 |
| ゼロページ・インデックストX | nn,X | ゼロページの番地にXレジスタの値を加算した番地を指定する。 |
| ゼロページ・インデックストY | nn,Y | ゼロページの番地にYレジスタの値を加算した番地を指定する。 |
| アブソリュート・インデックストX | nnnn,X | 絶対番地にXレジスタの値を加算した番地を指定する。 |
| アブソリュート・インデックストY | nnnn,Y | 絶対番地にYレジスタの値を加算した番地を指定する。 |
| インデックストX・インダイレクト | (nn,X) | ゼロページ・インデックストXで指定される番地に格納された16ビット値を指定する。 |
| インダイレクト・インデックストY | (nn),Y | ゼロページの指定番地に格納された16ビット値に、Yレジスタの値を加算した番地を指定する。 |
ただし、nには16進1桁の数値を指定する。
;6507:6502のアドレスを13ビットに削減したもの。Atari 2600等。
;RP2A03:10進演算関連の機能が削除され、サウンド機能が追加されているもの。ファミリーコンピュータ等。
;Hu6280:高クロック化がはかられ独自に命令拡張がなされたもの。PCエンジン等。
;65816:レジスタの16ビット化を含む多くの機能拡張がなされたもの。スーパーファミコン等。
;740ファミリ:ルネサステクノロジー社製の8ビットMCU。7200, 740/7450/7470シリーズがある。
互換CPU