Copyright copy; 2010.9.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Copyrightamp;copy;2010.9.ppt

Copyright ? 2010.9 mfy@ustc.edu.cn 2)段内间接方式 这种方式也是在段内,其转移的目标地址是寄存器或存储单元的内容,即以寄存器或存储器单元内容来更新IP的内容,所以是绝对偏移量。若目标地址为存储单元内容,则该存储单元本身可由上述与存储器操作数有关的任何寻址方式寻址,只是它里面的内容为新的IP值 。 Copyright ? 2010.9 mfy@ustc.edu.cn 2)段内间接方式 JMP BX;BX的内容为新的EA值,送给IP寄存器。 JMP WORD PTR[BP+TABLE];BP内容加位移量TABLE的值作为堆栈段中偏移量,该存储器字的内容作为新的IP值。 IP寄存器新的值 IP寄存器新的值 Copyright ? 2010.9 mfy@ustc.edu.cn 3)段间直接寻址 用于段间转移,目标地址的段基值(CS)和偏移地址(IP)都是指令码的组成部分,用来更新当前CS和IP。 JMP FAR PTR NEXTADD;NEXTADD是另一段的符号地址。 Copyright ? 2010.9 mfy@ustc.edu.cn 4)段间间接方式 当前CS和IP由存储器中连续的两个字更新,低位地址的字更新IP,高位地址的字更新CS,存放新IP和CS的存储单元地址由前述存储器操作数的寻址方式决定。 JMP DW0RD PTR[INTER+BX] ;取DS段中偏移为INTER+BX处的双字作为新的CS和IP。 Copyright ? 2010.9 mfy@ustc.edu.cn Copyright ? 2010.9 mfy@ustc.edu.cn 计算段内转移地址有两种方法:一种是把当前的IP值增加或减少某一个值,也就是以当前指令为中心往前或往后转移,称为相对转移; 另一种是以新的值完全代替当前的IP值,称为绝对转移。 在86系列中,所有的段内直接转移都是相对转移,所有的段内间接转移和段间转移都是绝对转移。 由于相对转移指令及其目标地址是相对于该指令本身而言的,因而适用于与位置无关(即动态浮动)的程序。这种程序中,相对转移指令及其目标都在同一段中,并一起浮动。 JMP指令具有所有这些转移地址的功能,CALL和RET指令没有短转移的功能。 Copyright ? 2010.9 mfy@ustc.edu.cn 条件转移指令 条件转移指令是根据执行该指令时CPU标志的状态而决定是否发生控制转移的指令。所有条件转移指令完成的都是短距离相对转移,因此适用于与位置无关的程序。 如果转移距离超过短距离范围,则必须使用两级跳转才能达到目的。 第1类和第2类是测试各种标志的组合,其中,第1类是为无符号数设计的,第2类是为带符号数设计的,这两类条件转移指令前面都要求是一条SUB或CMP指令。第3类是测试单个标志。 Copyright ? 2010.9 mfy@ustc.edu.cn CALL 第一步是将返回地址,也就是CALL指令下面那条指令的地址推入堆栈。 来说,执行的操作是: SP?SP-2.IP入栈 对于远调用来说,执行的操作是: SP?SP-2, CS入栈 SP?SP-2 , IP入栈 第二步是转到子程序的入口地址去执行相应的子程序。入口地址由CALL指令的目的操作数提供,寻找入口地址的方法与JMP指令的寻址方法基本上是一样的,也有四种方式: 段内直接调用,段内间接调用,段间直接调用和段间间接调用,但没有段内短调用指令。 Copyright ? 2010.9 mfy@ustc.edu.cn Copyright ? 2010.9 mfy@ustc.edu.cn Copyright ? 2010.9 mfy@ustc.edu.cn RET 执行过程中的RET指令后,从栈中弹出返回地址,使程序返回主程序继续执行。 分为两种情况: 如果从近过程返回,则从栈中弹出一个字?IP,并且使SP?SP+2。 如果从远过程返回,则先从栈中弹出一个字? IP,并且使SP?SP+2 ;再从栈中弹出一个字?CS,并使SP?SP+2 。 Copyright ? 2010.9 mfy@ustc.edu.cn 循环控制指令 循环控制指令LOOP也是短距离相对转移指令,可用来控制软件循环的重复过程。 LOOP指令用CX寄存器作为计数器,它首先使CX减l,若减1后不为0,则转移到目标地址;否则就执行LOOP指令之后的指令。 XOR AX, AX MOV CX,0 L: INC AX LOOP L Copyright ? 2010.9 mfy@ustc.edu.cn 6.处理器控制指令 1.对标志位操作指令

文档评论(0)

gsgtshb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档