好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

18页
  • 卖家[上传人]:桔****
  • 文档编号:592036189
  • 上传时间:2024-09-19
  • 文档格式:PPT
  • 文档大小:178.50KB
  • / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1汇编语言程序设计汇编语言程序设计 条件转移指令Ø指指定定的的条条件件cc如如果果成成立立,,程程序序转转移移到到由由标标号号label指指定定的的目目标标地地址址去去执执行行指指令令;;条条件件不不成成立立,,则则程程序序将将顺顺序序执执行行下一条指令下一条指令Ø操操作作数数label是是采采用用短短转转移移,,称称为为相相对对寻址方式寻址方式JccJccJcc labelJcc label ;条件满足,发生转移:;条件满足,发生转移:IP←IPIP←IP++8 8位位移量位位移量 ;条件不满足,顺序执行;条件不满足,顺序执行 相对寻址方式ØJcc指令的操作数指令的操作数label是一个标号是一个标号n一个一个8位位移量位位移量nJcc指指令令后后的的那那条条指指令令的的偏偏移移地地址址,,到到目目标标指指令令的的偏偏移移地地址址的的地地址址位位移移,,且且距距当当前前IP地地址址--128~~++127个个单单元元的的范范围围之之内内,,属于段内短距离转移属于段内短距离转移n相对寻址方式相对寻址方式ØJcc指指令令为为2个个字字节节,,条条件件不不满满足足时时的的顺序执行就是当前指令偏移指针顺序执行就是当前指令偏移指针IP加加2JccJcc Jcc指令的分类Ø不影响标志,但要利用标志。

      不影响标志,但要利用标志Ø根根据据利利用用的的标标志志位位不不同同,,16条条指指令分成令分成3种情况:种情况:1. 判断单个标志位状态判断单个标志位状态2. 比较无符号数高低比较无符号数高低3. 比较有符号数大小比较有符号数大小JccJcc 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,判断结果是否进位或借位,判断结果是否进位或借位JccJcc 例:例:JZ/JNZ指令指令test al,80htest al,80h;测试最高位;测试最高位jz next0jz next0;;D7D7==0 0((ZFZF==1 1),转移),转移mov ah,0ffhmov ah,0ffh;;D7D7==1 1,顺序执行,顺序执行jmp donejmp done;无条件转向;无条件转向next0:next0:mov ah,0mov ah,0done:done:......test al,80htest al,80h;测试最高位;测试最高位jnz next1jnz next1;;D7D7==1 1((ZFZF==0 0),转移),转移mov ah,0mov ah,0;;D7D7==0 0,顺序执行,顺序执行jmp donejmp done;无条件转向;无条件转向next1:next1:mov ah,0ffhmov ah,0ffhdone:done:...... 例:例:JS/JNS指令指令;;计算计算|X--Y|(绝对值)(绝对值);;X和和Y为存放于为存放于X单元和单元和Y单元的单元的16位操作数位操作数;结果存入;结果存入result mov ax,X sub ax,Y jns nonneg neg ax ;;neg是求补指令是求补指令nonneg: mov result,ax 例:例:JO/JNO指令指令;计算;计算X--Y;;;;X和和Y为存放于为存放于X单元和单元和Y单元的单元的16位操作数位操作数;若溢出,则转移到;若溢出,则转移到overflow处理处理 mov ax,X sub ax,Y jo overflow ...;无溢出,结果正确;无溢出,结果正确overflow: ...;有溢出处理;有溢出处理 例:例:JP/JNP指令指令and al,7fhand al,7fh;;最最高高位位置置“0 0”,,同同时时判判断断“1 1”的的个个数数jnp nextjnp next;个数已为奇数,则转向;个数已为奇数,则转向nextnextor al,80hor al,80h;否则,最高位置;否则,最高位置“1 1”next:next:......;设字符的;设字符的ASCII码在码在AL寄存器中寄存器中;将字符加上奇校验位;将字符加上奇校验位;在字符;在字符ASCII码中为码中为“1”的个数已为奇数时的个数已为奇数时;则令其最高位为;则令其最高位为“0”;否则令最高位为;否则令最高位为“1” 例:例:JC/JNC指令指令xor al,alxor al,al;;ALAL==0 0,,CFCF==0 0again:again:test bx,test bx,0ffffh 0ffffh ;等价于;等价于 cmp bx,0cmp bx,0je nextje nextshl bx,1shl bx,1jnc againjnc againinc alinc aljmp againjmp againnext:next:......;;ALAL保存保存1 1的个数的个数;记录;记录BX中中1的个数的个数 记录记录BX中中“1”的个数的个数xor al,alxor al,al;;ALAL==0 0,,CFCF==0 0again:again:cmp bx,0cmp bx,0jz nextjz nextshl bx,1shl bx,1;也可使用;也可使用 shr bx,1shr bx,1adc al,0adc al,0jmp againjmp againnext:next:......;;ALAL保存保存1 1的个数的个数另一种做法另一种做法 比较无符号数高低Ø无无符符号号数数的的大大小小用用高高((Above))低低((Below)表示)表示Ø利利用用CF确确定定高高低低、、利利用用ZF标标志志确确定定相相等(等(Equal))Ø两数的高低分成两数的高低分成4种关系:种关系:⑴⑴ 低于(不高于等于):低于(不高于等于):JB((JNAE))⑵⑵ 不低于(高于等于):不低于(高于等于):JNB((JAE))⑶⑶ 低于等于(不高于):低于等于(不高于):JBE((JNA))⑷⑷ 不低于等于(高于):不低于等于(高于):JNBE((JA ))JccJcc 例:比较无符号数例:比较无符号数cmp ax,bx ;比较;比较ax和和bxjnb next;若;若ax≥bx,转移,转移xchg ax,bx;若;若ax<<bx,交换,交换next:... 比较有符号数大小Ø有有符符号号数数的的大大((Greater))小小((Less))需需要要组组合合OF、、SF标标志志,,并并利利用用ZF标标志志确定相等(确定相等(Equal))Ø两数的大小分成两数的大小分成4种关系:种关系:⑴⑴ 小于(不大于等于):小于(不大于等于):JL((JNGE))⑵⑵ 不小于(大于等于):不小于(大于等于):JNL((JGE))⑶⑶ 小于等于(不大于):小于等于(不大于):JLE((JNG))⑷⑷ 不小于等于(大于):不小于等于(大于):JNLE((JG ))JccJcc 例:比较有符号数例:比较有符号数cmp ax,bx ;比较;比较ax和和bxjnl next;若;若ax≥bx,转移,转移xchg ax,bx;若;若ax<<bx,交换,交换next:... 实验内容Ø1、、设设X,Y为为存存放放在在X,Y单单元元中中的的16位位操操作作数数,,判判断断X>Y,若若成成立立执执行行X-Y, 否否则则计算计算|X-Y|,并把结果存入并把结果存入RESULT中中Ø2、、假假设设有有100个个16位位无无符符号号数数存存放放在在数数据据段段,,把把它它们们的的和和求求出出来来,,作作为为32位数存在位数存在DX和和AX中中Ø3、、数数据据段段有有一一个个首首地地址址为为ARRAY的的N字字数数组组,,要要求求测测试试其其中中正正数数、、0、、负负数数的的个个数数,,正正数数个个数数放放在在DI中中,,0的的个个数数放放在在SI中中,,并并根根据据N-(DI)-(SI)求求得得负负数数的个数放在的个数放在AX中。

      点击阅读更多内容
      相关文档
      【全国硕士研究生入学统一考试政治】2020年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2015年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2010年考研政治真题.docx 【全国硕士研究生入学统一考试政治】1996年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2001年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2016年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2000年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(理科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2007年考研政治真题.doc 【全国硕士研究生入学统一考试政治】1997年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2004年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2003年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2019年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2009年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2001年政治考研真题(文科)及参考答案.doc 【全国硕士研究生入学统一考试政治】2021年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2014年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2018年考研政治真题.docx 【全国硕士研究生入学统一考试政治】2008年考研政治真题.doc 【全国硕士研究生入学统一考试政治】2011年考研政治真题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.