我正在用 Ruby 为一个相对简单的 6502 处理器编写一个模拟器。
我的问题是,有没有办法用汇编指令的详细信息定义散列或数组,然后是它需要的操作数数量,最后是实现它的方法/函数?
然后在代码的某个地方,可以根据读取的指令评估哈希或数组,并且可以启动为其实现的适当方法/函数?
我对想法持开放态度...
目前,我有这样的结构,但在实现它时遇到了困难:
@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 ]
Lambdas,Procs?像这样的事情可以实现我在这里实现的目标吗?
我真的不希望每条指令都有一个大的“案例/时间”,然后是一个巨大、丑陋且相对不友好的地方的陈述。
谢谢!