ほとんどのエミュレータは、特定の命令がルックアップテーブル内で取るサイクル数を格納し、必要に応じて(たとえばページ境界を越えるとき)任意の条件サイクルを追加します。特定の命令が6502で実行するサイクル数を手続きで決定できますか?
アドレッシングモードとメモリの読み書きだけに基づいて命令が実行するサイクル数を手続きで判断する方法があるのだろうかと思います。
例として、即時または相対アドレッシングを使用するすべての命令が2サイクルかかることに気付きました。
ゼロページ命令はすべて3サイクル、インメモリでメモリを変更する場合はさらに2サイクルかかる。
インデックス付きのゼロページ命令は、すべて4サイクル、インメモリでメモリを変更する場合は2サイクルを要します。
...などです。
したがって、上記のような命令のサイクル数を決定するための完全に文書化された手続き的な方法がありますか?このような公式の中で決定論を破る例外はありますか?
手作業で送信した古いAtari 8ビットシリーズ周辺機器の正確なタイミングを得るには、[6502命令セット](http://www.6502.org/tutorials/6502opcodes.html)のようなリファレンスを常に使用しなければなりませんでした。シリアルインタフェース上でビットごとに52サイクルまたは19サイクル(1MHzh 6502)で1ビットずつ受信される。 (〜19,200ビット/秒または〜52,600ビット/秒)。 – rcgldr