-1

I know the meaning of Ret n but I can't figure out its role to maintaining program's runtime stack? I'm kind of confuse there. Do ret have somethig to do with stack?

1 Answers1

1

ret n is like ret + add esp, n. You use it for caller-pops calling conventions.

Plain ret is like pop eip. (pop eip isn't a valid instruction, but it nicely expresses what ret does). Yes it uses the stack; read the documentation. http://felixcloutier.com/x86/RET.html (specifically the "near return" part.)

"far ret" is more complicated, but not used in 32 or 64-bit code with a flat memory model. i.e. not used at all in normal code.

Peter Cordes
  • 328,167
  • 45
  • 605
  • 847