RISC-V 汇编调用 C 函数
- 遵守 ABI(Application Binary Interface)的规定
- 数据类型的大小,布局和对齐
- 函数调用约定(Calling Convention)
- 系统调用规定
- ……
- RISC-V 函数调用相关约定
- 函数参数采用寄存器 a0~a7 传递
- 函数返回值采用寄存器 a0 和 a1 传递
C 嵌入 RISC-V 汇编
1 | asm [volatile] { |
- 汇编指令用双引号括起来,多条指令之间用 “;” 或者 “\n” 分隔
- “输出操作数列表” 和 “输入操作数列表” 用于将需要操作的 C 变量和汇编指令的操作数对应起来,多个操作数之间用 “,” 分隔。
- “可能影响的寄存器或者存储器” 用于告知编译器当前嵌入的汇编语句可能修改的寄存器或者内存,方便编译器执行优化。