__asm__ volatile 之 C语言嵌入式汇编 该文章详细介绍了,但不限于:
- __asm__ 、volatile的原理和作用
- 内联函数的格式
什么是内联汇编?
GCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作GCC Inline ASM——GCC内联汇编。这是一个非常有用的功能,有利于我们将一些C/C++语法无法表达的指令直接潜入C/C++代码中,另外也允许我们直接写 C/C++代码中使用汇编编写简洁高效的代码。
其实就是在C/C++中加入汇编语句,一个是有一些操作无法使用高级语言,只能用汇编;另一个是高级语言虽然易读,但是执行效率肯定没有汇编高。
基本内联汇编
__asm__("movl %esp,%eax"); // 括号里一定要加引号,引号内是汇编语句
__asm__是GCC关键字asm的宏定义:
#define __asm__ asm
__asm__或asm用来声明一个内联汇编表达式,所以任何一个内联汇编表达式都是以它开头的,是必不可少的。