汇编语言学习笔记9

汇编语言学习笔记9

ID:15725462

大小:33.00 KB

页数:4页

时间:2018-08-05

汇编语言学习笔记9_第1页
汇编语言学习笔记9_第2页
汇编语言学习笔记9_第3页
汇编语言学习笔记9_第4页
资源描述:

《汇编语言学习笔记9》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、转移指令的原理刚开始的时候就学了转移指令,例如jmpbx。现在就系统的学习一下。首先转移分为短转移和近转移,短转移修改ip的范围是-128--127近转移的范围--32768--32767.这说的是段内转移的情况,而按照专一的类型又分为:无条件转移(jmp转移)条件转移指令循环指令中断等。首先认识一个操作符offset这是一个由编译器处理的符号,它能够取得标号处的偏移地址。例如以下程序assumecs:codecodesegmentstart:MOVax,offsetstarts:MOVax,offsetscodeendsENDstartoffset分别取得

2、了start和s的偏移地址0和3movax,offsetstart相当于指令movax,0start是代码段中的标号,呵呵由于offset取得的是偏移地址而不是短地址所以就是0了呗,同理解释sjmp转移指令应用到程序中jmpshort标号(转到标号处执行指令)由于有short这个转移是短转移,例如下面的程序。assumecs:codecodesegmentstart:MOVax,0JMPshortsADDax,1s:INCaxMOVax,4c00hint21hcodeendsENDstart由debug看出我们直接执行了incax而没有执行addax,1由此

3、可知转移成功。。其实就是改变了IP的内容,来进行转移。当然我们使用的jmp指令不仅能在标号处进行转移,以前我们也是用debug进行过jmp寄存器的操作。这就是进行-32768--32766(16)的转移了,另外我们还可以在内从中进行转移,例如下边的指令movax,0123hmovds:[0],axjmpwordptrds:[0]我们看出了此几条语句中我们用到了段超越前缀,单位操作符ptrjcxz指令有条件转移,所有的有条件转移都是短转移,指令格式jcxz标号转移的条件是cx==0档cx不为零时继续向下执行程序举例利用jcxz指令,实现在内存2000h段中查找

4、第一个值为零的字节,找到后将他的偏移地址存到dx中。程序如下assumecs:codecodesegmentstart:MOVax,2000hMOVds,axMOVbx,0MOVch,0s:MOVal,byteptr[bx]MOVcl,aljcxzokINCbxJMPshortsok:MOVdx,bxMOVax,4c00hint21hcodeendsENDstart呵呵本课结束了,敬请期待续集,精彩内容更在http://sela365.com/space.php?do=blog&view=me

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。