学习目标

  • 理解 RISC-V ABI 规范
  • 掌握寄存器使用约定

11.1 寄存器约定

Caller-saved(调用者保存)

  • a0-a7, t0-t6
  • 调用函数前需要保存

Callee-saved(被调用者保存)

  • s0-s11
  • 函数内使用需要保存

11.2 函数序言与尾声

func:
    # 序言
    addi sp, sp, -16
    sw   ra, 12(sp)
    sw   s0, 8(sp)

    # 函数体
    ...

    # 尾声
    lw   s0, 8(sp)
    lw   ra, 12(sp)
    addi sp, sp, 16
    ret

实践练习

手写符合 ABI 的函数。

下一步

第 12 章:特权级与系统调用

更新时间: