收藏 分销(赏)

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

上传人:a199****6536 文档编号:4224410 上传时间:2024-08-26 格式:PPTX 页数:18 大小:335.82KB
下载 相关 举报
汇编教程条件转移指令.pptx_第1页
第1页 / 共18页
汇编教程条件转移指令.pptx_第2页
第2页 / 共18页
汇编教程条件转移指令.pptx_第3页
第3页 / 共18页
汇编教程条件转移指令.pptx_第4页
第4页 / 共18页
汇编教程条件转移指令.pptx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、1汇编语言程序设计汇编语言程序设计条件转移指令指指定定的的条条件件cc如如果果成成立立,程程序序转转移移到到由由标标号号label指指定定的的目目标标地地址址去去执执行行指指令令;条条件件不不成成立立,则则程程序序将将顺顺序序执执行行下一条指令下一条指令操操作作数数label是是采采用用短短转转移移,称称为为相相对对寻址方式寻址方式JccJccJcc labelJcc label ;条件满足,发生转移:;条件满足,发生转移:IPIPIPIP8 8位位移量位位移量 ;条件不满足,顺序执行;条件不满足,顺序执行相对寻址方式Jcc指令的操作数指令的操作数label是一个标号是一个标号n一个一个8位位

2、移量位位移量nJcc指指令令后后的的那那条条指指令令的的偏偏移移地地址址,到到目目标标指指令令的的偏偏移移地地址址的的地地址址位位移移,且且距距当当前前IP地地址址128127个个单单元元的的范范围围之之内内,属于段内短距离转移属于段内短距离转移n相对寻址方式相对寻址方式Jcc指指令令为为2个个字字节节,条条件件不不满满足足时时的的顺序执行就是当前指令偏移指针顺序执行就是当前指令偏移指针IP加加2JccJccJcc指令的分类不影响标志,但要利用标志。不影响标志,但要利用标志。根根据据利利用用的的标标志志位位不不同同,16条条指指令分成令分成3种情况:种情况:1.判断单个标志位状态判断单个标志位

3、状态2.比较无符号数高低比较无符号数高低3.比较有符号数大小比较有符号数大小JccJcc1.判断单个标志位状态这组指令单独判断这组指令单独判断5个状态标志之一个状态标志之一JZ/JE和和JNZ/JNE:利利用用零零标标志志ZF,判判断断结结果是否为零(或相等)果是否为零(或相等)JS和和JNS:利利用用符符号号标标志志SF,判判断断结结果果是是正是负正是负JO和和JNO:利利用用溢溢出出标标志志OF,判判断断结结果果是是否产生溢出否产生溢出JP/JPE和和JNP/JPO:利利用用奇奇偶偶标标志志PF,判判断结果中断结果中“1”的个数是偶是奇的个数是偶是奇JC/JB/JNAE和和JNC/JNB/

4、JAE:利利用用进进位位标志标志CF,判断结果是否进位或借位,判断结果是否进位或借位JccJcc例:例:JZ/JNZ指令指令test al,80htest al,80h;测试最高位;测试最高位jz next0jz next0;D7D70 0(ZFZF1 1),转移),转移mov ah,0ffhmov ah,0ffh;D7D71 1,顺序执行,顺序执行jmp donejmp done;无条件转向;无条件转向next0:next0:mov ah,0mov ah,0done:done:.test al,80htest al,80h;测试最高位;测试最高位jnz next1jnz next1;D7D7

5、1 1(ZFZF0 0),转移),转移mov ah,0mov ah,0;D7D70 0,顺序执行,顺序执行jmp donejmp done;无条件转向;无条件转向next1:next1:mov ah,0ffhmov ah,0ffhdone:done:.例:例:JS/JNS指令指令;计算计算|XY|(绝对值)(绝对值);X和和Y为存放于为存放于X单元和单元和Y单元的单元的16位操作数位操作数;结果存入;结果存入result mov ax,X sub ax,Y jns nonneg neg ax;neg是求补指令是求补指令nonneg:mov result,ax例:例:JO/JNO指令指令;计算;

6、计算XY;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

7、:next:.;设字符的;设字符的ASCII码在码在AL寄存器中寄存器中;将字符加上奇校验位;将字符加上奇校验位;在字符;在字符ASCII码中为码中为“1”的个数已为奇数时的个数已为奇数时;则令其最高位为;则令其最高位为“0”;否则令最高位为;否则令最高位为“1”例:例:JC/JNC指令指令xor al,alxor al,al;ALAL0 0,CFCF0 0again:again:test bx,test bx,0ffffh 0ffffh;等价于;等价于 cmp bx,0cmp bx,0je nextje nextshl bx,1shl bx,1jnc againjnc againinc al

8、inc aljmp againjmp againnext:next:.;ALAL保存保存1 1的个数的个数;记录;记录BX中中1的个数的个数记录记录BX中中“1”的个数的个数xor al,alxor al,al;ALAL0 0,CFCF0 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的个数的个数另一种做法另一种做法比较无符号数高低无无符符号号数数的的大大小

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

10、符号数大小有有符符号号数数的的大大(Greater)小小(Less)需需要要组组合合OF、SF标标志志,并并利利用用ZF标标志志确定相等(确定相等(Equal)两数的大小分成两数的大小分成4种关系:种关系:小于(不大于等于):小于(不大于等于):JL(JNGE)不小于(大于等于):不小于(大于等于):JNL(JGE)小于等于(不大于):小于等于(不大于):JLE(JNG)不小于等于(大于):不小于等于(大于):JNLE(JG)JccJcc例:比较有符号数例:比较有符号数cmp ax,bx;比较;比较ax和和bxjnl next;若;若axbx,转移,转移xchg ax,bx;若;若axbx,交

11、换,交换next:.实验内容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中。中。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服