pvi*_*nis 6 emulation go gameboy
我正在写一个简单的模拟器(我应该?或者我应该回到c?).无论如何,我正在获取指令并对其进行解码.在这一点上,我有一个像0x81的字节,我必须执行正确的功能.
我应该有这样的东西吗?
func (sys *cpu) eval() {
switch opcode {
case 0x80:
sys.add(sys.b)
case 0x81:
sys.add(sys.c)
etc
}
}
Run Code Online (Sandbox Code Playgroud)
或类似的东西
var fnTable = []func(*cpu) {
0x80: func(sys *cpu) {
sys.add(sys.b)
},
0x81: func(sys *cpu) {
sys.add(sys.c)
}
}
func (sys *cpu) eval() {
return fnTable[opcode](sys)
}
Run Code Online (Sandbox Code Playgroud)
哪一个更好?
哪一个更快?
还有
3.我可以声明一个内联函数吗?
4.i有一个cpu struct我有寄存器等,如果我有寄存器和全部作为全局变量会更快吗?(没有struct)
非常感谢你.