gpt4 book ai didi

c++ - 减少模拟器中 switch 语句的大小?

转载 作者:太空狗 更新时间:2023-10-29 21:45:37 25 4
gpt4 key购买 nike

我开始使用 this v1.7 spec 编写 DCPU-16 模拟器.我开始制定架构,但我不喜欢使用很长的 switch 语句。这是我第一次写模拟器,所以我不知道是否有更好的方法。虽然开关没有那么那么大,但由于 DCPU 的操作码数量很少(事实上我还没有真正实现这些指令),我可以想象如果我正在为更大的指令集 switch 语句将庞大

任何人,here's my code .

编辑:我忘了回答我的问题:

  • 有没有比使用大型开关更好的模拟器设计方法?

最佳答案

这种方法对我来说似乎是合理的。我当然会这样做(我已经编写了一些 CPU 模拟器和类似类型的代码)。

最接近的替代方案是一组函数指针,但您的某些情况可能会相当简单(例如 cpu_regs.flags &= ~CARRYif (cpu_regs.flags & CARRY ) do_rel_jump(next_byte());,所以使用函数指针会减慢你的速度。

你可以把所有的“No Operation Specified yet”集中到一个地方,这样行数会少很多,但情况的数量当然还是一样的[除非你把它放在 默认值:]。

关于c++ - 减少模拟器中 switch 语句的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17187712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com