3.3.2 嵌入汇编

  内核C语言程序嵌入式汇编代码又叫内联汇编,具有输入和输出参数的嵌入汇编语句的基本格式为:

**************************************************

asm("汇编语句"

  : 输出寄存器

  : 输入寄存器

  : 会被修改的寄存器);

**************************************************

除第一行外,后面带冒号的行若不使用就可以省略。其中,"asm"是内联汇编语句关键词;"汇编语句"是写汇编指令的地方;“输出寄存器”表示当这段嵌入式汇编执行完成后,哪些寄存器用于存放输出数据。这些寄存器会分别对应一个C语言表达式的值或一个内存地址;“输入寄存器”表示在开始执行汇编代码时,这里指定的寄存器中应存放输入值,他们也分别对应着一C语言变量或常数值。“会被修改的寄存器”表示你已经对其中列出的寄存器额值进行了改动,gcc编译器不能再依赖于它原先对这些寄存器加载的值。如果必要的话,gcc需要重新加载这些寄存器。因此我们要把那些没有在输入/输出寄存器部分列出,但是在汇编语句中明确使用到或隐含使用到的寄存器名列在这个部分中。

3.3.2 嵌入汇编

上一篇:产品经理须知技能


下一篇:为什么我不再和别人比较了?