﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-学好delphi-随笔分类-汇编-转移指令原理</title><link>http://www.cnitblog.com/shuyezi122/category/8072.html</link><description>我delphi笔记,你的参与就是对我最大的支持,还有汇编语言也在学
我的QQ群:79598397
</description><language>zh-cn</language><lastBuildDate>Sat, 01 Oct 2011 08:11:19 GMT</lastBuildDate><pubDate>Sat, 01 Oct 2011 08:11:19 GMT</pubDate><ttl>60</ttl><item><title>call指令</title><link>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55185.html</link><dc:creator>小叶子</dc:creator><author>小叶子</author><pubDate>Sat, 07 Mar 2009 17:41:00 GMT</pubDate><guid>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55185.html</guid><wfw:comment>http://www.cnitblog.com/shuyezi122/comments/55185.html</wfw:comment><comments>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55185.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shuyezi122/comments/commentRss/55185.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shuyezi122/services/trackbacks/55185.html</trackback:ping><description><![CDATA[CPU执行call时,进行两步操作<br>1.把当前IP或cs:ip压入栈中<br>2.然后转移<br><br>call不能实现短转移,<br><br>格式<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;标号<br>call far ptr&nbsp;&nbsp;&nbsp;&nbsp;标号<br>call&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16位寄存器<br>call word ptr [...]<br>call dword ptr [...] <br><br><br>因为call压栈,而ret出栈,所以两个结合使用,从而生成有了程序的源程序<br><br>代码如下<br>assume cs:code<br>code segment<br>main: ....<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;........<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call s<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;........<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov ax,4c00H<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int 21h<br>s:&nbsp;&nbsp;&nbsp; ....<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call s0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret<br>s0:&nbsp;&nbsp;.......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .........<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret<br>code ends<br>end main
<img src ="http://www.cnitblog.com/shuyezi122/aggbug/55185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shuyezi122/" target="_blank">小叶子</a> 2009-03-08 01:41 <a href="http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55185.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ret和retf指令</title><link>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55184.html</link><dc:creator>小叶子</dc:creator><author>小叶子</author><pubDate>Sat, 07 Mar 2009 17:12:00 GMT</pubDate><guid>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55184.html</guid><wfw:comment>http://www.cnitblog.com/shuyezi122/comments/55184.html</wfw:comment><comments>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55184.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shuyezi122/comments/commentRss/55184.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shuyezi122/services/trackbacks/55184.html</trackback:ping><description><![CDATA[<p>ret 用栈中数据改IP内容,近转移<br>retf用栈中数据同时改CS,IP,远转移<br><br>用汇编解释<br>ret&nbsp;&nbsp;&nbsp;-&gt;&nbsp; pop ip<br><br>retf&nbsp;&nbsp;-&gt;&nbsp; pop ip<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;pop cs</p>
<img src ="http://www.cnitblog.com/shuyezi122/aggbug/55184.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shuyezi122/" target="_blank">小叶子</a> 2009-03-08 01:12 <a href="http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55184.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jcxz指令</title><link>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55182.html</link><dc:creator>小叶子</dc:creator><author>小叶子</author><pubDate>Sat, 07 Mar 2009 16:46:00 GMT</pubDate><guid>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55182.html</guid><wfw:comment>http://www.cnitblog.com/shuyezi122/comments/55182.html</wfw:comment><comments>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55182.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shuyezi122/comments/commentRss/55182.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shuyezi122/services/trackbacks/55182.html</trackback:ping><description><![CDATA[jcxz是有条件转移指令<br>所以有条件转移指令都是短转移,IP的改变在-128与127之间<br><br>既然是有条件转移,那条件是什么呢?<br>就是寄存器CX的是否为0,<br>cx=0就转移,<br>cx!=0不转移
<img src ="http://www.cnitblog.com/shuyezi122/aggbug/55182.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shuyezi122/" target="_blank">小叶子</a> 2009-03-08 00:46 <a href="http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55182.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jmp指令</title><link>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55181.html</link><dc:creator>小叶子</dc:creator><author>小叶子</author><pubDate>Sat, 07 Mar 2009 16:27:00 GMT</pubDate><guid>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55181.html</guid><wfw:comment>http://www.cnitblog.com/shuyezi122/comments/55181.html</wfw:comment><comments>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shuyezi122/comments/commentRss/55181.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shuyezi122/services/trackbacks/55181.html</trackback:ping><description><![CDATA[jmp为无条件转移指令,可以只改IP,也可以同时改cs:ip<br><br>jmp s<br>jmp short s<br>jmp near ptr&nbsp;s<br>jmp far ptr&nbsp;s<br>jmp word ptr [...]&nbsp;&nbsp; ;段内转移<br>jmp dword ptr [...] ;段间转移,高地址是CS,低地址是IP
<img src ="http://www.cnitblog.com/shuyezi122/aggbug/55181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shuyezi122/" target="_blank">小叶子</a> 2009-03-08 00:27 <a href="http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>offset</title><link>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55179.html</link><dc:creator>小叶子</dc:creator><author>小叶子</author><pubDate>Sat, 07 Mar 2009 16:14:00 GMT</pubDate><guid>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55179.html</guid><wfw:comment>http://www.cnitblog.com/shuyezi122/comments/55179.html</wfw:comment><comments>http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/shuyezi122/comments/commentRss/55179.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/shuyezi122/services/trackbacks/55179.html</trackback:ping><description><![CDATA[<p>offset在电脑中是指:偏移量<br><br>在汇编中:取标号的偏移地址<br>assume cs:codesg<br>codesg segment<br>start:&nbsp; mov ax,offset start&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;同于mov ax,0,占3个字节<br>&nbsp;&nbsp;&nbsp;&nbsp; s:&nbsp; mov ax,offset s&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;同于mov ax,3<br>codesg ends<br>end start<br><br>在PE文件中<br>文件偏移量(file offset)<br>还有:raw offset-物理地址偏移<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; memory offset-内存偏移</p>
<img src ="http://www.cnitblog.com/shuyezi122/aggbug/55179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/shuyezi122/" target="_blank">小叶子</a> 2009-03-08 00:14 <a href="http://www.cnitblog.com/shuyezi122/archive/2009/03/08/55179.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>