《条件转移》PPT课件.ppt

上传人:牧羊曲112 文档编号:5584600 上传时间:2023-07-30 格式:PPT 页数:29 大小:340.99KB
返回 下载 相关 举报
《条件转移》PPT课件.ppt_第1页
第1页 / 共29页
《条件转移》PPT课件.ppt_第2页
第2页 / 共29页
《条件转移》PPT课件.ppt_第3页
第3页 / 共29页
《条件转移》PPT课件.ppt_第4页
第4页 / 共29页
《条件转移》PPT课件.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《《条件转移》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《条件转移》PPT课件.ppt(29页珍藏版)》请在三一办公上搜索。

1、1,2.条件转移指令,1简单条件转移指令2无符号数条件转移指令3.有符号数条件转移指令 它们都有通用的语句格式和功能。语句格式:操作符 opr功能:如果条件满足,则(IP)位移量IP。,CS,2,1)简单条件转移指令,3,控制转移指令-例,例:根据加法运算的结果,做不同的动作,或者add ax,tempjnz action1action_1:action_2:,add ax,tempjz action_2 action_1:MOV.action_2:ADD,4,条件转移指令,2)比较两个无符号数,并根据比较的结果转移JBE(JBA)(CF ZF)=1 无符号数JNBE(JA)(CF ZF)=0

2、 无符号数,3)比较两个带符号数,并根据比较结果转移JL(JNGE)(SF OF)=1 有符号数JNL(JGE)(SF OF)=0 有符号数JLE(JNG)(SF OF)vZF=1 有符号数JNLE(JG)(SF OF)vZF=0 有符号数,Above-大于 Blow-小于,Great-大于 Low-小于,5,带符号数/无符号数比较,必须区分有符号和无符号指令的适用情况,否则会出现错误.例如:AX=11111111,BX=00000000CMP AX,BX无符号数 1111111(255)00000000(0)有符号数 1111111(-1)=CFVZF=1,6,带符号比较的情况,SF=1 符

3、号为负,OF=1 有溢出 SF OF SF OF A 0 0 0(大于)B 0 1 1(小于)C 1 0 1D 1 1 0,7,控制转移指令-测试CX,4)测试 CX 的值为 0 则转移指令JCXZ CX 寄存器为0则转移格式:JCXZ OPR,JECXZ OPR ECX 寄存器的内容值为 0 则转移指令格式:JECXZ OPR 测试条件(ECX)=0,8,控制转移指令-例,mov ax,xcmp ax,50jg too-highsub ax,yjo overflowjns nonneg neg axnonneg:mov result,axtoo_high:overflow:,例:设X,Y均为

4、存放在X和 Y单元中的16位操作数,先判断X50否?如果满足条件则转移到TOO-HIGH去执行。然后做X-Y;如溢出则转移到OVERFLOW去执行。否则计算|X-Y|,并把结果存入RESULT中。,9,控制转移指令,例 3.65 a,b为两个双精度数,分别存储于DX,AX及AX,CX中.要求编制一程序使AB时转向X转向,否则转Y执行,程序如下:CMP DX,BX JG X JL Y CMP AX,CX JA XY:X:,10,例:3.78,Cx=n bx=0 di=0 si=0,Arraybx0?,INC di,INC si,Arraybx0?,BX=(BX)+2,CX-1=0?,AX=n,A

5、X=(AX)-di-si,Y,N,Y,N,N,Y,di:正数个数si:负数个数,Array,11,例:统计数组中 负数、0、正数的个数,12,3.条件设置指令,根据条件码 设置目标寄存器/存储器,指令格式:SET cc DST,操作:根据所指定条件码情况,如果满足条件则把目的字节置为1,否则把目的字节置为0。,1)根据单个条件标志的值把目的字节置为1,SETZ/SETE DST 结果为零,目的字节 DST 置为1 SETNZ/SETNE DST 结果不为零,目的字节 DST 置为1 SETS(或条件位 S、O、P、C),13,3.条件设置指令,2、比较两个无符号数,并根据比较结果目的字节置为1

6、,SETB/SETNAE/SETC DST 小于,目的字节 DST 置为1 SETNB/SETAE/SETNC DST 不小于,目的字节 DST 置为1 SETBE/SETNA DST 小于等于,目的字节 DST 置为1,3、比较两个带符号数,并根据比较结果目的字节置为1,SETL/SETNGE DST 小于,目的字节 DST 置为 1 SETNL/SETGE DST 不小于,目的字节 DST 置为 1 SETLE/SETNG DST 小于等于,目的字节 DST 置为 1 SETNBE/SETG DST 不小于等于,目的字节 DST 置为 1,14,4 循环指令,1)循环指令LOOP2)相等/

7、为零循环指令LOOPE3)不相等/不为零循环指令LOOPNE 4)CX为零转移指令JCXZ,说明:使用LOOP指令可代替两条指令:DEC CX JNE 短标号,1)循环指令 LOOP语句格式:LOOP 短标号功能:(CX)1 0,则程序转移(循环);否则,顺序执行。,15,2)相等/为零循环指令LOOPE,语句格式:LOOPE/LOOPZ 短标号功能:(CX)1 0 且 ZF=1,则程序转移(循环)否则,顺序执行。,3)不相等/不为零循环指令LOOPNE语句格式:LOOPNE/LOOPNZ 短标号功能:(CX)10,且 ZF=0 则程序转移(循环);否则,顺序执行。,16,4)CX为零转移指令

8、JCXZ,语句格式:JCXZ 短标号功能:(CX)10,则程序转移(循环);否则,顺序执行。,返回本节,17,循环指令-举例,例3.67 有一个首地址array的m字数组,试编写一个程序:求出数组的内容之和,并把结果存入total中.,mov cx,m mov ax,0 mov si,0 st-1:add ax,arraysi add si,2 loop st-1 mov total,ax,18,循环指令-举例,例3.68 有一个串中有l个字符,存放在str存储区中.查找字符串中的空格,如果没找到,则转到not_found去执行.mov cx,l mov si,-1 mov al,20h ne

9、xt:inc si cmp ax,strsi loopnz next jnz not_found not_found:,19,5.子程序-段内直接调用,指令:CALL 调用 RET 返回,由于子程序与调用程序可以在一个段中,也可以在不同一段中,因此着这两条指令的格式有:,(1)CALL 调用,段内直接调用 CALL DST,操作:PUSH IP IP=(IP)+D16 或 EIP=(EIP)+D16)AND 0000FFFFH PUSH EIP(32位),SUBP-A,D16,寄存器,IP,例:CALL SUBP-A,20,5 子程序-段内间接调用,指令:CALL 调用 RET 返回,段内间接

10、调用 CALL DST,操作:PUSH IP IP(EA)或 EIP(EA)AND 0000FFFFH PUSH IP 或 PUSH EIP(32位),例:CALL BX+D16,21,5 子程序-段间直接远调用,CS1:IP1,例:CALL FAR PTR PROGA,PROGA,段间直接远调用 CALL DST,操作:PUSH CS PUSH IP IP DST 指定的偏移地址 CS DST 指定的段地址*PUSH CS 或 PUSH EIP(32位),22,5 子程序-段间间接远调用,指令:CALL 调用 RET 返回,CS1:IP1,例:CALL FAR PTR BX+D16,PROG

11、A,段间间接远调用 CALL DST,操作:PUSH CS PUSH IP IP(EA)CS(EA+2)*PUSH CS 或 PUSH EIP(32位),23,【例3.54】比较有符号数大小,将较大的数存放在AX寄存器。CMPAX,BX;(AX)(BX)JNLNEXT;若AX=BX,转移到NEXTXCHGAX,BX;若AXBX,交换NEXT:,返回本节,24,3.6 中断指令,2中断返回指令IRET语句格式:IRET功能:(SP)IP(SP)CS(SP)FLAGS,1中断调用指令INT语句格式:INT n功能:(FLAGS)(SP),0 IF、TF。(CS)(SP),(4*n+2)CS。(IP

12、)(SP),(4*n)IP。,中断,中断服务,中断反回,25,3.7 处理机控制类指令,3.7.1 标志位设置指令,返回本章首页,1进位标志操作指令2方向标志操作指令3中断标志操作指令,3.7.2 CPU状态控制指令,26,CLC CF=0CMC CF=STC CF=1CLD DF=0STD DF=1CLI IF=0(cpu不识别中断请求线上的外部中断请求信号,屏蔽中断)STI IF=1(取消中断屏蔽),标志位设置指令,27,CPU状态控制指令,NOP 无操作(留出富余空间)HLT 停 机(使cpu 进入暂时停机状态,等待外部中断的到来)WAIT 等待(循环等待中断,中断执行后,回到等待状态,作用与硬件状态同步)ESC 换码(使别的处理器能从LOCK 封锁(与其它指令联合时使用,维持总线锁存信号,起协同工作的作用)BOUND 界限指令ENTER 建立堆栈帧指令(286以后机用),28,本章重点,各种寻址方式学会使用汇编语言的各种命令如何判断溢出(有符号数和无符号数)符号扩展的含义压缩的和非压缩的bcd码的调整指令串操作时,不同前缀的结束重复条件的区别比较大小时,有符号数和无符号数的判断条件,29,THANK YOU VERY MUCH,本章到此结束,谢谢您的光临!,返回本章首页,结 束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号