什么时候汇编比C更快?
已知的了解汇编器的原因之一是,有时可以用它来编写比用高级语言(尤其是C)编写更高性能的代码。 但是,我也听到过很多次声明,尽管这并非完全错误,但 实际上 可将汇编程序用于生成更多性能代码的情况极为罕见,并且需要汇编方面的专业知识和经验。 这个问题甚至都没有涉及到汇编程序指令将是特定于机器且不可移植的,或者汇编程序的任何其他方面。 当然,除了汇编语言之外,还有很多了解汇编语言的充分理由,但这是一个特定的问题,需要征集示例和数据,而不是对汇编语言和高级语言的扩展论述。 谁能提供一些 特定的例子 , 说明 使用现代编译器进行汇编比编写良好的C代码要快得多,并且您可以提供带有分析依据的主张吗? 我对这些案例的存在很有信心,但是我真的想确切地知道这些案例有多深奥,因为这似乎有些争议。 #1楼 根据我的经验,有几个例子: 访问无法从C访问的指令。例如,许多体系结构(如x86-64,IA-64,DEC Alpha和64位MIPS或PowerPC)支持64位乘64位乘法,产生128位结果。 GCC最近添加了扩展名,以提供对此类说明的访问,但是在需要该程序集之前。 当实施RSA之类的东西时,访问此指令可能对64位CPU产生巨大的影响-有时性能会提高4倍。 访问特定于CPU的标志。 咬住我很多的是进位标志; 在进行多精度加法运算时,如果您无法访问CPU进位,则必须比较结果以查看其是否溢出