Skip to content

callee and caller saved registers

Posted on:December 12, 2023 at 12:06 PM

the difference between caller and callee saved registers

Caller-saved registers (AKA volatile registers, or call-clobbered) are used to hold temporary quantities that need not be preserved across calls.

因此,如果调用者想要在过程调用后恢复该值,则有责任将这些寄存器压入堆栈或将它们复制到其他位置。

Callee-saved registers (AKA non-volatile registers, or call-preserved) are used to hold long-lived values that should be preserved across calls.

当调用者进行过程调用时,可以预期这些寄存器在被调用者返回后将保持相同的值,因此被调用者有责任在返回调用者之前保存并恢复它们。或者不要碰它们。

X86_64