MOS 6502
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/21 04:44 UTC 版)
命令セット
- 命令はバイト単位で、1 - 3 バイトの可変長命令である。
- 主な命令内容は以下の通り
- メモリまたはイミディエイト値からレジスタへのロード
- レジスタからメモリへのストア
- レジスタ値を別のレジスタへ転送(コピー)
- Aレジスタを用いた次の処理
- 加算
- 減算
- ビット論理演算
- 比較演算
- 絶対番地による無条件分岐
- サブルーチン分岐・リターン
- Pレジスタ値による相対番地への条件分岐
- スタックへのプッシュ・プル
- Pレジスタへのセット・クリア
- 加減算命令は、必ずキャリーを伴って行われるため、単に2値の加減算を行う場合には、必ずCLCまたはSEC命令でキャリーを初期化する必要がある。
- リセット直後は$FFFC番地に格納されたアドレス(RSTベクタ)から増加する方向に実行が行われる。また、スタックポインタはアドレスが減少する方向に自動的に減算されるため、スタックはメモリ下位番地に向かって伸びる。
- アセンブリ言語において、ニーモニックは必ず3 文字で表記される。
- 豊富なアドレッシングモードを持つ。
- A,P以外のレジスタをスタックに直接プッシュ・プルする命令はない。
- インデックスレジスタの値は+1,-1できるが、算術・論理演算に使用する命令はない。
主なアドレッシングモード
呼称 | 記述 | 説明 |
---|---|---|
イミディエイト | #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桁の数値を指定する。
- ゼロページではアブソリュートより命令のコード数が1バイト少なくなり、所要サイクル数も変化する。
- MC6800シリーズは「16 ビットインデックス値+8 ビット定数」になるのに対して、6502はインデックスレジスタが2 つで「16 ビット絶対番地+8 ビットインデックス値」になっているのが最大の違いとなっている。比較すると、インデックスレジスタの重要性が増す代わりに、ポインタを扱うのは難しくなっている。
- ^ “The MOS 6502 and the Best Layout Guy in the World”. swtch.com (2011年1月3日). 2022年8月24日閲覧。
- ^ “MOnSter6502”. monster6502.com (2017年). 2022年8月24日閲覧。
- ^ a b “上村雅之さん 大いに語る。 ファミリーコンピュータ インタビュー(前編)(2013年10月号より)”. Nintendo Dream Web. アンビット (2018年7月21日). 2022年8月24日閲覧。
- ^ “【任天堂「ファミコン」はこうして生まれた】第7回:業務用機の仕様を家庭用に、LSIの開発から着手(3/3)”. 日経BP (2008年10月3日). 2014年5月22日時点のオリジナルよりアーカイブ。2014年5月22日閲覧。
- ^ “MOS Technology 6502 - Bugs and Quirks”. 2022年10月23日閲覧。
- ^ “Measuring the ROR Bug in the Early MOS 6502”. 2022年10月23日閲覧。
- ^ 1975年8月のデータシートでは ROR 命令を除く55個の命令が記載されており,1976年5月のデータシートでは ROR 命令を含む56個の命令が記載されている。File:MCS650x Instruction Set.jpg
- ^ Smotherman, Mark (2001年10月). “Which Machines Do Computer Architects Admire?”. 2022年8月24日閲覧。
- ^ “Wilson, Sophie oral history : 2012 fellow - 102746190”. Computer History Museum (2012年1月31日). 2022年8月24日閲覧。
固有名詞の分類
- MOS 6502のページへのリンク