如何在C或C++代码中嵌入ARM汇编代码
转载自: http://blog.csdn.net/roland_sun/article/details/42921131 大家知道,用C或者C++等高级语言编写的程序,会被编译器编译成最终的机器指令。这中间,编译器会对代码自动进行优化。但是,这种优化往往不一定非常高效。 所以,出于性能优化的目的,对非常关键的代码,任然需要直接用汇编指令编写。 并且在C和C++中,是无法直接对寄存器进行操作的,如果要实现的功能需要频繁与底层硬件打交道,也需要用汇编指令编写。 GCC编译器支持直接在C或者C++代码中,嵌入ARM汇编代码。其基本格式非常简单,大致如下: [cpp] view plain copy __asm__ [__volatile__] ( assembler template : [output operand list] /* optional */ : [input operand list] /* optional */ : [clobbered register list] /* optional */ ); 首先是关键字“__asm__”,其实也可以写成“asm”。但是“asm”并不是所有版本的GCC编译器都支持的,而且有可能和程序中别的地方定义的变量或函数名冲突,所以用“__asm__”的话,兼容性会好一点。 下面是“__volatile__”关键字,这个是可选的