
{"id":2250,"date":"2010-07-30T19:57:32","date_gmt":"2010-07-30T14:27:32","guid":{"rendered":"http:\/\/www.jeffrin.in\/?p=2250"},"modified":"2010-07-30T19:57:32","modified_gmt":"2010-07-30T14:27:32","slug":"leave-instruction","status":"publish","type":"post","link":"https:\/\/www.trueangle.org\/index.php\/2010\/07\/30\/leave-instruction\/","title":{"rendered":"LEAVE Instruction ++"},"content":{"rendered":"<h4> WinDbg shows &#8220;leave&#8221; instruction <\/h4>\n<pre>\n7c901227 c9              leave\n7c901228 c20400          ret     4\n7c90122b 90              nop\n7c90122c 90              nop\n7c90122d 90              nop\n7c90122e 90              nop\n7c90122f 90              nop\nntdll!DbgBreakPoint:\n7c901230 cc              int     3\n<\/pre>\n<h4>7c901227 c9  leave <\/h4>\n<p><\/p>\n<h4> Process Involved <\/h4>\n<pre>\nProgram :  \"notepad\" on Windows.\n<\/pre>\n<p><\/p>\n<h4> Explanation <\/h4>\n<pre>\nLEAVE -- High Level Procedure Exit\nLEAVE reverses the actions of the ENTER instruction. By copying the\nframe pointer to the stack pointer, LEAVE releases the stack space\nused by a procedure for its local variables.\n\nsource : http:\/\/www.cs.uaf.edu\/~cs301\/notes\/Chapter9\/node11.html\nsource : http:\/\/d3s.mff.cuni.cz\/~ceres\/sch\/osy\/text\/ch03s02s02.php\nsource : http:\/\/pdos.csail.mit.edu\/6.858\/2010\/readings\/i386\/ENTER.htm\nsource : http:\/\/pdos.csail.mit.edu\/6.858\/2010\/readings\/i386\/LEAVE.htm\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>WinDbg shows &#8220;leave&#8221; instruction 7c901227 c9 leave 7c901228 c20400 ret 4 7c90122b 90 nop 7c90122c 90 nop 7c90122d 90 nop 7c90122e 90 nop 7c90122f 90 nop ntdll!DbgBreakPoint: 7c901230 cc int 3 7c901227 c9 leave Process Involved Program : &#8220;notepad&#8221; on Windows. Explanation LEAVE &#8212; High Level Procedure Exit LEAVE reverses the actions of the ENTER &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.trueangle.org\/index.php\/2010\/07\/30\/leave-instruction\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;LEAVE Instruction ++&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":-1,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[950,1019,1677,1680],"_links":{"self":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/2250"}],"collection":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/comments?post=2250"}],"version-history":[{"count":0,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/posts\/2250\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/media?parent=2250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/categories?post=2250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.trueangle.org\/index.php\/wp-json\/wp\/v2\/tags?post=2250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}