首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减少模拟器中开关语句的大小?

减少模拟器中开关语句的大小?
EN

Stack Overflow用户
提问于 2013-06-19 09:29:59
回答 1查看 784关注 0票数 4

我开始使用这个v1.7规范编写一个DCPU-16模拟器。我开始制定架构,我不喜欢使用非常长的开关语句的事实。这是我第一次编写模拟器,所以我不知道是否有更好的方法。虽然开关并不大,因为DCPU的操作码数量很少(而且实际上我还没有实现这些指令),但我可以想象,如果我为一个更大的指令集编写一个仿真程序,开关语句将是巨型

随便谁,这是我的密码

编辑:我忘了把我的问题说清楚:

  • 是否有比使用大型交换机更好的设计仿真器的方法?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-19 09:36:56

在我看来,这种方法是合理的。我当然会这么做(我编写了一些CPU模拟器和类似类型的代码)。

最近的选择是一组函数指针,但有些情况可能相当简单(例如,cpu_regs.flags &= ~CARRYif (cpu_regs.flags & CARRY) do_rel_jump(next_byte());,因此使用函数指针会减慢速度。

你可以把所有的“没有指定的操作”聚集到一个地方,这将使它的行数大大缩短,但是除非你把它放在default:中,否则情况的数量当然还是一样的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17187712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档