语法(GCC)
1 | asm [volatile] ( |
- 汇编指令用双引号括起来,多条指令之间用
";"
或者"\n"
分隔; - "输出操作数列表"和"输入操作数列表"用于将需要操作的C变量和汇编指令的操作数对应起来,多个操作数之间用
","
分隔; - "可能影响的寄存器或者存储器"用于告知编译器当前嵌入的汇编语句可能修改的寄存器或者内存,方便编译器执行优化。
示例(RISC-V)
1 | int foo(int a, int b) { |
另一种写法:
1 | int foo(int a, int b) { |
xv6中的示例:
1 | // Supervisor Trap-Vector Base Address |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shuojiang的博客!
评论