学习目标

  • 在 C 中调用汇编
  • 在汇编中调用 C

9.1 内联汇编

int add(int a, int b) {
    int result;
    asm volatile (
        "add %0, %1, %2"
        : "=r"(result)
        : "r"(a), "r"(b)
    );
    return result;
}

9.2 独立汇编文件

# add.s
.global asm_add
asm_add:
    add a0, a0, a1
    ret
// main.c
extern int asm_add(int a, int b);

int main() {
    int sum = asm_add(10, 20);
    return 0;
}

实践练习

用汇编优化关键函数。

下一步

第 10 章:函数调用约定

更新时间: