MOS 6502
MOS 6502とは、アメリカのモステクノロジーが1975年に発表した8ビットのマイクロプロセッサ、いわゆるCPUです。頭文字なし、数字だけで単に「6502」と表記されることも多々あります。
この6502はアップルのApple IIを筆頭にコモドールのPET 2001、CBM3032、VIC-1001などに採用され全米で大人気となりました。
一方で日本ではZ80がマイコン市場を席巻し、6502の採用事例はほとんどありませんでした。後に日本では「無名であり」「技術者がいなく」「マイコンもほとんど流通していない」ことから「事実上なコピープロテクトになる」という理由でファミコンやPCエンジンなどの家庭用ゲーム機にカスタム品が採用されています。また、保通協のない時代の一部のパチンコ遊技機にも採用されていた事例があるようです。
6502は、モトローラのMC6800をモデルに、レジスタセットの簡素化を図り、多彩なアドレッシングモードと良く練られたパイプライン機構を持ち、同時期に設計された同一程度動作クロックの他CPU (MPU) 群に比べて格段に高速に演算処理を実行できました。
レジスタ
- 通常レジスタ
MOS 6502は主に3つの8ビットレジスタを持っています。Aレジスタはアキュムレータであり、XレジスタおよびYレジスタはインデックスレジスタとして機能します。
| Load
Store |
Add
Sub |
Logical | Shift
Rotate |
Compare | Inc
Dec |
Addr
Offset | |
|---|---|---|---|---|---|---|---|
| Aレジスタ | ◯ | ◯ | ◯ | ◯ | ◯ | ||
| Xレジスタ | ◯ | ◯ | ◯ | ◯ | |||
| Yレジスタ | ◯ | ◯ | ◯ | ◯ |
- ゼロページ
6502には「ゼロページ」という機能が搭載されており、メインメモリの先頭から256バイトをAレジスタと様々な計算ができるようになっています。つまり「256個の仮想的なレジスタ」とを余分に持っているとも言えます。
- 特殊レジスタ
- PCレジスタ = これは16ビットレジスタで、次に実行する命令のメモリアドレスを保持します。
- Sレジスタ = これはスタックの現在の位置を指すために使用されます。
- Pレジスタ = これは各種のフラグ(キャリー、ゼロ、割り込み禁止、十進モード、ブレーク、オーバーフローなど)を保持します。