Prologue and Epilogue
Prologue — set up the frame:
push rbp ; save caller's frame pointer
mov rbp, rsp ; establish new frame base
sub rsp, 0x20 ; reserve 32 bytes for locals
Epilogue — tear it down:
leave ; == mov rsp, rbp ; pop rbp
ret ; pop return address into RIP
leavecollapses the frame in one instruction.- After
leave,RSPpoints at the return address, ready forret.