内联汇编是指在源代码中直接加入汇编代码,这样在对源代码进行编译之后的汇编代码中就包含有植入的汇编代码,以达到代码优化的目的。
有时候程序员自己认为自己编写的汇编代码的性能肯定比编译器生成的汇编代码性能更好,有些自负,
但是如果开启编译器的优化选项,其生成的优化后的汇编代码,在性能上一般都能超过人工编写的内敛汇编代码,
这是很悲剧的。
还有一点需要注意的是, 内敛汇编不是跨平台的,于是程序员需要根据不同的平台,写不同的内联汇编代码以达到跨平台的目的。
下面收集了一些关于内敛汇编的资料。
1. GCC编译环境下的内敛汇编。
英文:
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#s2
中文:
http://blog.csdn.net/wuyao721/article/details/3573598
2. MS VC++ 环境下得内敛汇编。
http://msdn.microsoft.com/en-us/library/4ks26t93(v=VS.71).aspx
不过悲剧的是,现在的VS 还不支持intel x64体系结构下的内敛汇编,
不过有一些替代方法:
http://mariusbancila.ro/blog/2010/10/17/no-more-inline-asm-in-vc-on-x64/
3.还有就是对于汇编语言,intel 和AT&T有不同汇编语法。
语法上的大致区别:
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html#s3