比較的単純な 6502 プロセッサ用のエミュレータを Ruby で作成しています。
私の質問は、アセンブリ命令の詳細、それに続くオペランドの数、最後にそれを実装するメソッド/関数でハッシュまたは配列を定義する方法はありますか?
次に、コードのどこかで、読み取られた命令に基づいてハッシュまたは配列を評価し、それに実装された適切なメソッド/関数を起動できますか?
私はアイデアにオープンです...
現在、私はそのような構造を持っていますが、それを実装するのに苦労しています:
@inst.push [ 0x48, :implied, 1, PHA]
@inst.push [ 0xA2, :immediate, 2, LDX ]
@inst.push [ 0xA9, :immediate, 2, LDA ]
@inst.push [ 0xAD, :absolute, 3, LDA ]
@inst.push [ 0xA6, :zeropage, 2, LDX ]
@inst.push [ 0xB6, :zeropagey, 2, LDX ]
@inst.push [ 0xAE, :absolute, 2, LDX ]
@inst.push [ 0xBE, :absolutey, 2, LDX ]
@inst.push [ 0x8A, :implied, 1, TXA ]
ラムダ、プロクス?私がここで達成しようとしていることに対して、そのようなことはできますか?
私は本当に、各命令の大きな「ケース/いつ」とそれに続く1つの巨大で醜く、比較的不親切な場所にステートメントが続くことを望んでいません。
ありがとう!