分享
分享赚钱 收藏 举报 版权申诉 / 18

类型汇编教程 条件转移指令.ppt

  • 上传人:hwpkd79526
  • 文档编号:7272279
  • 上传时间:2019-05-12
  • 格式:PPT
  • 页数:18
  • 大小:706.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    汇编教程 条件转移指令.ppt
    资源描述:

    1、1,汇编语言程序设计,条件转移指令,指定的条件cc如果成立,程序转移到由标号label指定的目标地址去执行指令;条件不成立,则程序将顺序执行下一条指令 操作数label是采用短转移,称为相对寻址方式,Jcc,Jcc label;条件满足,发生转移:IPIP8位位移量;条件不满足,顺序执行,相对寻址方式,Jcc指令的操作数label是一个标号 一个8位位移量 Jcc指令后的那条指令的偏移地址,到目标指令的偏移地址的地址位移,且距当前IP地址128127个单元的范围之内,属于段内短距离转移 相对寻址方式 Jcc指令为2个字节,条件不满足时的顺序执行就是当前指令偏移指针IP加2,Jcc,Jcc指令的

    2、分类,不影响标志,但要利用标志。 根据利用的标志位不同,16条指令分成3种情况: 1. 判断单个标志位状态 2. 比较无符号数高低 3. 比较有符号数大小,Jcc,条件转移指令中的条件cc,Jcc,1. 判断单个标志位状态,这组指令单独判断5个状态标志之一 JZ/JE和JNZ/JNE:利用零标志ZF,判断结果是否为零(或相等) JS和JNS:利用符号标志SF,判断结果是正是负 JO和JNO:利用溢出标志OF,判断结果是否产生溢出 JP/JPE和JNP/JPO:利用奇偶标志PF,判断结果中“1”的个数是偶是奇 JC/JB/JNAE和JNC/JNB/JAE:利用进位标志CF,判断结果是否进位或借位

    3、,Jcc,例:JZ/JNZ指令,test al,80h ;测试最高位jz next0 ;D70(ZF1),转移mov ah,0ffh ;D71,顺序执行jmp done ;无条件转向 next0: mov ah,0 done: .test al,80h ;测试最高位jnz next1 ;D71(ZF0),转移mov ah,0 ;D70,顺序执行jmp done ;无条件转向 next1: mov ah,0ffh done: .,例:JS/JNS指令,;计算|XY|(绝对值) ;X和Y为存放于X单元和Y单元的16位操作数 ;结果存入result,mov ax,Xsub ax,Yjns nonne

    4、gneg ax ;neg是求补指令 nonneg: mov result,ax,例:JO/JNO指令,;计算XY; ;X和Y为存放于X单元和Y单元的16位操作数 ;若溢出,则转移到overflow处理,mov ax,Xsub ax,Yjo overflow. ;无溢出,结果正确 overflow: . ;有溢出处理,例:JP/JNP指令,and al,7fh;最高位置“0”,同时判断“1”的个数jnp next;个数已为奇数,则转向nextor al,80h ;否则,最高位置“1” next: .,;设字符的ASCII码在AL寄存器中 ;将字符加上奇校验位 ;在字符ASCII码中为“1”的个数

    5、已为奇数时 ;则令其最高位为“0”;否则令最高位为“1”,例:JC/JNC指令,xor al,al ;AL0,CF0 again: test bx,0ffffh ;等价于 cmp bx,0je nextshl bx,1jnc againinc aljmp again next: . ;AL保存1的个数,;记录BX中1的个数,记录BX中“1”的个数,xor al,al ;AL0,CF0 again: cmp bx,0jz nextshl bx,1 ;也可使用 shr bx,1adc al,0jmp again next: . ;AL保存1的个数,另一种做法,比较无符号数高低,无符号数的大小用高(

    6、Above)低(Below)表示 利用CF确定高低、利用ZF标志确定相等(Equal) 两数的高低分成4种关系: 低于(不高于等于):JB(JNAE) 不低于(高于等于):JNB(JAE) 低于等于(不高于):JBE(JNA) 不低于等于(高于):JNBE(JA ),Jcc,例:比较无符号数,cmp ax,bx ;比较ax和bxjnb next ;若axbx,转移xchg ax,bx ;若axbx,交换 next: .,比较有符号数大小,有符号数的大(Greater)小(Less)需要组合OF、SF标志,并利用ZF标志确定相等(Equal) 两数的大小分成4种关系: 小于(不大于等于):JL(

    7、JNGE) 不小于(大于等于):JNL(JGE) 小于等于(不大于):JLE(JNG) 不小于等于(大于):JNLE(JG ),Jcc,例:比较有符号数,cmp ax,bx ;比较ax和bxjnl next ;若axbx,转移xchg ax,bx ;若axbx,交换 next: .,16位数转换为ASCII码,实验内容,1、设X,Y为存放在X,Y单元中的16位操作数,判断XY,若成立执行X-Y, 否则计算|X-Y|,并把结果存入RESULT中 2、假设有100个16位无符号数存放在数据段,把它们的和求出来,作为32位数存在DX和AX中 3、数据段有一个首地址为ARRAY的N字数组,要求测试其中正数、0、负数的个数,正数个数放在DI中,0的个数放在SI中,并根据N-(DI)-(SI)求得负数的个数放在AX中。,

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:汇编教程 条件转移指令.ppt
    链接地址:https://www.docduoduo.com/p-7272279.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开