楼主:
gowrite (gowrite)
2017-11-26 03:59:53各位好 新手自学
我想问一个问题
常常听人家说,组合语言的运作效率比 C 语言好,因为组合语言比较接近 binary code
这个我有点不太懂
因为 C 语言在编译的过程中
从 "预处理 C 语言" > "转为组合语言" > "转为 binary code"
我不会组合语言,不知道组合语言实际编译的过程,
所以假设组合语言编译的过程中,
就是 "从组合语言" > "转为 binary code"
那 C 语言也是会被编译成组合语言,再进一步被编译成 binary code
最后两者都是 binary code
那何来的 组合语言 比 C语言 快说法呢??
大家可以解惑吗?
谢谢
现在compiler写的组合语言应该比自己写强很多了
作者:
Ommm5566 (56天團)
2017-11-26 07:29:00现在编译器优化理论很成熟 去看llvm
作者:
CoNsTaR ((const *))
2017-11-26 08:31:00那直接写 binary code 执行效率是不是也比 asm 还高 XDD
作者: supertitler (新的开始) 2017-11-26 09:05:00
除了虚拟指令 asm跟machine code不就是1:1的关系吗0.0?
作者:
chuegou (chuegou)
2017-11-26 11:01:00因为组语你在写的时候你自己会针对资料相依性优化但编译器不一定知道你的资料相依性
作者:
galic (嘎利)
2017-11-26 11:36:00去问那个这样讲的人阿
作者: jaid (jaid) 2017-11-26 14:46:00
越底层能控制的越细,能榨出来的效能越多,前提是你有本事
如果很熟底层硬件特性可以阿 不然就乖乖写C吧而且现在编译器大部分都帮你优化了
作者:
kokal (细菌)
2017-11-26 22:20:00有些code的optimization被证明是NPC (from wiki),因此存在optimal solution 较快