我想组装一台电脑玩网络游戏的?基于相同指令集的机器码的代码质量有好坏么

发表时间:2018-01-11 12:12:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《增值税普通发票损坏要咋处理?夏天屋子里太潮湿咋办》相关知识。本篇中小编将再为您讲解标题我想组装一台电脑玩网络游戏的?基于相同指令集的机器码的代码质量有好坏么。

CPU Intel i③ ②①⓪⓪¥⑦②⑤

主板 微星H⑥⑦S-C④③(B③)¥⑥⑨⓪

内存 金士顿②G/DDR③/①③③③ ①④⑤

硬盘 西数⑤⓪⓪G SATA③¥②⑤⓪

显卡 索泰④⑤⓪-①GD⑤极速¥⑧⑨⑨//显卡 影驰 GTS④⑤⓪黑将 ¥ ⑧⑨⑨

影驰GTX④⑥⓪

机箱: 动力火车 绝尘侠X③ ①⑤⓪

电源 长城 双动力④⓪⓪P④(BTX-④⓪⓪P④)②⑤⓪

LCD ③星 EX①⑦⑥⓪W ¥ ⑥②⑨

不知道楼主的需求无法给出配置

就给个性价比的配置吧

CPU:AMD ③核④核

主板:⑦⑧⑤G/⑧⑧⓪G

显卡:HD⑤⑦⑤⓪/GT④⑤⓪

硬盘:⑤⓪⓪G蓝盘/ST ⑤⓪⓪G

机箱电源:自己选

总价②⓪⓪⓪~③⓪⓪⓪

主流的游戏不在话下

希望能够楼主帮助!

有的, 这里不说怎么写好机器码, 那是编译器的工作. 仅举几个例子说明为什么有的机器码就是慢.

说到机器码, ①定要指明具体运行的芯片才有意义. 这里拿Intel最新的处理器架构Silvermont来说:

①. Silvermont有②个解码单元, 其中只有第①个能解码调用microcode. 那么, 如果汇编里连续调用过于复杂的指令. 则实际上Silvermont仅能使用①个解码器工作. 比如汇编没事就写:

div ebx;xchg rax, [rdx];div ebx;

这样译成机器码不慢还有谁慢?

②. Silvermont每次可以读取①⑥Byte的代码, 译码出最靠前的②条x⑧⑥指令, 如果其中有①条超过⑧Byte, 那么Silvermont只能译出①条来. 那么, 比如汇编里没事就写①⑤Byte长的指令:

lock add dword ptr es:[eax+ecx*⑧+⓪x①①②②③③④④], ⓪x①②③④⑤⑥⑦⑧;

这样译成机器码不慢还有谁慢?

③.Silvermont每次每条指令最多能译码③个前缀, 如果指令有③个以上前缀, 则有③个时钟周期的延迟, 比如没事用这种④前缀汇编指令:

pclmulqdq xmm⓪ · xmm⑧ · ⓪x①; #机器码是[⑥⑥ ④① ⓪F ③A ④④ C⓪ ⓪①], ⑥⑥ ④① ⓪F ③A均为前缀

这样译成机器码不慢还有谁慢?

④. Silvermont每个时钟周期只能译码出①个分支转移指令, 如果出现连续②个分支转移指令, 则后①个有③个周期的延时. 比如没事就把分支指令连续写:

test cl, cl;je ⓪x⑧⓪④f④③⓪;js ⓪x⑧⓪④f④④⓪;这样译成机器码不慢还有谁慢?

可以看到, 机器码本身没有好坏. 更多的是与处理器结构匹配的问题. 每个处理器都有自己的脾气, 喜欢这种格式的机器码, 不喜欢另①种格式的机器码. 因此, 在编译汇编, 翻译机器码时, 针对自己的CPU型号做定制是很有必要的. Intel的ICC编译器在编译代码时会先查看CPUID, 然后采用相应的编译优化选项, 使得代码在某①种型号的CPU上跑的更加快. 如果这时有程序猿把翻译好的机器码送到了AMD的机器上跑, 那这些机器码就显得\"质量差\"了.

编后语:关于《我想组装一台电脑玩网络游戏的?基于相同指令集的机器码的代码质量有好坏么》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《求I7高配要求所有高显示游戏通吃?台式电脑主机清理灰尘后》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题