rip = *rsp rip = rip + 8
The ret instruction is used to return from a function. It pops the current top of the stack and uses this for the instruction pointer (rip).
With a stack frame established using
my_function: push rbp ; save previous rbp mov rbp, rsp ; establish frame pointer ; rbp will be used to access local variables ; and non-register parameters to my_function sub rsp, N ; N is some multiple of 16 ; leaving space for local variables and ; non-register parameters for called functionsUse ret to return using
leave ; restores rbp and rsp ret ; returns to the calling functionFor a function which does not require a stack frame, simply restore rsp and rbp if modified and use "ret" to return.
flags: none