文章目录 寄存器与别名 函数入栈 示例代码 作用 为什么需要保存 函数出栈 示例代码 作用 为什么需要恢复 浮点寄存器的保存 示例代码 作用 浮点寄存器的恢复 示例代码 作用 寄存器与别名 Caller(调用者)指的是调用(或执行)一个函数的代码段或函数。它是主动发起函数调用的一方。 Callee(被调用者)指的是被调用的函数本身。它是被动接受函数调用并执行相应操作的一方。 简而言之,caller 是调用函数的一方,而 callee 是被调用函数的一方。 所以函数调用时需要保存的寄存器为 通用寄存器 16 个 浮点寄存器 20 个(需要注意的是,浮点状态寄存器一般也是需要保存的,所以一般为 21 个) 函数入栈 示例代码 /* RV32I caller registers + 21 FPU caller registers */