[讨论] 关于 C 语言与组合语言编译问题

楼主: gowrite (gowrite)   2017-11-26 03:59:53
各位好 新手自学
我想问一个问题
常常听人家说,组合语言的运作效率比 C 语言好,因为组合语言比较接近 binary code
这个我有点不太懂
因为 C 语言在编译的过程中
从 "预处理 C 语言" > "转为组合语言" > "转为 binary code"
我不会组合语言,不知道组合语言实际编译的过程,
所以假设组合语言编译的过程中,
就是 "从组合语言" > "转为 binary code"
那 C 语言也是会被编译成组合语言,再进一步被编译成 binary code
最后两者都是 binary code
那何来的 组合语言 比 C语言 快说法呢??
大家可以解惑吗?
谢谢
作者: grayStone (灰色石头)   2017-11-26 04:04:00
现在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
去问那个这样讲的人阿
作者: Bencrie   2017-11-26 11:53:00
动词用“组译”,assembler 组译器
作者: alan23273850   2017-11-26 13:55:00
这个说法只适用于以前,编译器优化不佳的年代
作者: jaid (jaid)   2017-11-26 14:46:00
越底层能控制的越细,能榨出来的效能越多,前提是你有本事
作者: s0914714 (YA)   2017-11-26 18:46:00
如果很熟底层硬件特性可以阿 不然就乖乖写C吧而且现在编译器大部分都帮你优化了
作者: kokal (细菌)   2017-11-26 22:20:00
有些code的optimization被证明是NPC (from wiki),因此存在optimal solution 较快

Links booklink

Contact Us: admin [ a t ] ucptt.com