このページはSFC/SNESのCPUである65C816の命令コードをまとめたページです。左のサイドメニューから検索してください。
○表の見方
命令表は以下のような構成になっています。(スペースの都合上、下には一部のみ掲載しています)
LDA (Load the Accumulator with Memory) ①
アキュムレータに値をロードします。
アキュムレータが1バイト幅の場合は指定アドレスの内容を、2バイト幅の場合は指定アドレスの内容を下位バイトとして、指定アドレス+1にある内容を上位バイトとして読み込みます。 この命令で変更されうるフラグはネガティブフラグとゼロフラグとなります。
注⑦ アキュムレータが16bit幅の場合、1サイクル追加 1:ダイレクトページレジスタの下位バイトが0で無い場合は1サイクル追加 2:インデックスの追加時にページ境界をまたぐ場合は1サイクル追加 コード例⑧
RAMの$FE0000+(Xレジスタの内容)に格納されている値をアキュムレータに読み込みます。(5行目)
ちなみにDK2の場合、このコードを走らせることでスプライト配置データへのポインタを取得することが出来ます。途中で使っている命令については別ページに説明がありますのでそちらを参照してください。 |
○早見表の見方
ニーモニックあるいはオペコードの早見に便利なように一覧形式にしたものです。早見表は以下のような構成になっています。
OC ① |
オペランド ② |
ニーモニック ③ |
内容 ④ |
フラグ変化 ⑤ |
アドレッシングモード ⑥ |
バイト ⑦ |
サイクル ⑧ |
00 | aa | BRK #$aa | 実行中のプログラムを中断し、割り込みを行う。 | ----di--- | Stack / Interrupt | 2 | 7 |
01 | aa | ORA ($aa,x) | Aレジスタとメモリの論理和 | n-----z-- | Direct Page Indexed Indirect, X | 2 | 6 |
02 | aa | COP #$aa | コプロセッサによる割り込みを行う | ----di--- | Stack / Interrupt | 2 | 7 |
03 | aa | ORA $aa,s | Aレジスタとメモリの論理和 | n-----z-- | Stack Relative | 2 | 4 |