Releases the stack frame set up by an earlier ENTER instruction. The LEAVE instruction copies the frame pointer (in the EBP register) into the stack pointer register (ESP), which releases the stack space allocated to the stack frame. The old frame pointer (the frame pointer for the calling procedure that was saved by the ENTER instruction) is then popped from the stack into the EBP register, restoring the calling procedures stack frame.
A RET instruction is commonly executed following a LEAVE instruction to return program control to the calling procedure.
See Procedure Calls for Block-Structured Languages in Chapter 6 of the Intel Architecture Software Developers Manual, Volume 1, for detailed information on the use of the ENTER and LEAVE instructions.
IF StackAddressSize = 32 THEN ESP « EBP; ELSE (* StackAddressSize = 16*) SP « BP; FI; IF OperandSize = 32 THEN EBP « Pop(); ELSE (* OperandSize = 16*) BP « Pop(); FI;
|file: /Techref/intel/x86/inst/leave.htm, 1KB, , updated: 2006/9/8 06:58, local time: 2023/1/28 05:57,
|©2023 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?|
<A HREF="http://www.massmind.org/Techref/intel/x86/inst/leave.htm"> LEAVE—High Level Procedure Exit</A>
|Did you find what you needed?|
Welcome to massmind.org!
Welcome to www.massmind.org!