控制转移类指令课件_1

上传人:aa****6 文档编号:57358840 上传时间:2018-10-21 格式:PPT 页数:26 大小:87.50KB
返回 下载 相关 举报
控制转移类指令课件_1_第1页
第1页 / 共26页
控制转移类指令课件_1_第2页
第2页 / 共26页
控制转移类指令课件_1_第3页
第3页 / 共26页
控制转移类指令课件_1_第4页
第4页 / 共26页
控制转移类指令课件_1_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《控制转移类指令课件_1》由会员分享,可在线阅读,更多相关《控制转移类指令课件_1(26页珍藏版)》请在金锄头文库上搜索。

1、控制转移类指令,2.6.1 条件转移指令 2.6.2 无条件转移指令 2.6.3 循环指令 2.6.4 子程序调用指令 2.6.5 中断指令,2.6.1 条件转移指令,1简单条件转移指令 2无符号数条件转移指令 3. 有符号数条件转移指令 它们都有通用的语句格式和功能。 语句格式: 标号: 操作符 短标号 功能:如果条件满足,则(IP)位移量IP。,1简单条件转移指令,2无符号数条件转移指令,表2.2 无符号数条件转移指令,【例】比较无符号数大小,将较大的数存放AX寄存器。 CMP AX, BX ;(AX)(BX) JNB NEXT ;若AX=BX,转移到NEXT XCHG AX,BX ;若A

2、X=BX,转移到NEXT XCHG AX,BX ;若AXBX,交换 NEXT:,2.6.2 无条件转移指令,表2.4 无条件转移指令的语句格式及功能,2.6.3 循环指令,1循环指令LOOP 2相等/为零循环指令LOOPE 3不相等/不为零循环指令LOOPNE 4CX为零转移指令JCXZ,1循环指令LOOP 语句格式: LOOP 短标号 功能:(CX)1 0,则程序转移(循环);否则,顺序执行。 说明:使用LOOP指令可代替两条指令: DEC CX JNE 短标号,2相等/为零循环指令LOOPE 语句格式: LOOPE 短标号 LOOPZ 短标号 功能:(CX)1 0且ZF=1,则程序转移(循

3、环);否则,顺序执行。,3不相等/不为零循环指令LOOPNE 语句格式: LOOPNE 短标号 LOOPNZ 短标号 功能:(CX)10,则程序转移(循环);否则,顺序执行。,4CX为零转移指令JCXZ 语句格式: JCXZ 短标号 功能:(CX)10,则程序转移(循环);否则,顺序执行。,2.6.4 子程序调用指令,1子程序调用指令CALL (1)段内直接调用 (2)段间直接调用 (3)段内间接调用 (4)段间间接调用 2返回指令RET (1)语句格式:RET (2)语句格式:RET n(n为偶数),2.6.5 中断指令,1中断调用指令INT 语句格式:INT n 功能:(FLAGS)(SP

4、),0 IF、TF。 (CS) (SP),(4*n+2) CS。 (IP) (SP),(4*n) IP。 2中断返回指令IRET 语句格式:IRET 功能:(SP)IP (SP) CS(SP) FLAGS,3、2、5 控制转移指令 控制转移指令分成无条件转移指令和条件转移指令。 1无条件转移指令 转移可以分成两类:段内转移和段间转移。 段内转移是指在同一段的范围之内进行转移,此时只需改变IP寄存器的内容,即用新的转移目标地址代替原有的IP的值就可达到转移的目的。 段间转移则是要转到另一个段去执行程序,此时不仅要修改IP寄存器的内容,还需要修改CS寄存器的内容才能达到目的,因此此时的转移目标地址

5、应由新的段地址和偏移地址两部分组成 。,(1)直接短转移 JMP SHORT OPR ; 操作:(IP) (IP)+8位位移量 (2)段内直接转移 JMP NEAR PTR OPR; 操作:(IP) (IP)+16位位移量 (3)段内间接转移 JMP WORD PTR OPR; 操作:(IP) (有效地址) (4)段间直接(远)转移 JMP NEAR PTR OPR操作:(IP)OPR的段内偏移地址(CS)OPR所在段的段地址 (5)段间间接转移 JMP DWORD PTR OPR操作:(IP)(EA)(CS)(EA+2),2、条件转移指令 状态标志作为转移的条件,当满足一定的条件时,转移到指

6、定的地址,否则,将顺序执行下条指令。 作为判断条件的状态标志位有:CF、PF、ZF、SF和OF。 根据单个标志位的设置情况转移这组包括10种指令,它们一般适用于测试某一次运算的结果并根据其不同特征产生程序分支作不同处理的情况。 结果为零(或相等)转移 JZ/JE OPR ; ZF=1结果不为零(或不相等)转移 JNZ/JNE OPR; ZF=0结果为负转移 JS OPR ; SF=1结果为正转移 JNS OPR ;SF=0,溢出转移 JO OPR ;OF=1 无溢出转移 JNO OPR ;OF=0 奇偶位为1转移 JP/PE OPR ;PF=1 奇偶位为0转移 JNP/JPO OPR;PF=0

7、 低于/不高于或等于/进位为1转移 JB/JNAE/JC OPR;CF=1 不低于/高于或等于/进位为0转移 JNB/JAE/JNC OPR;CF=0(2)比较两个无符号数,并根据比较的结果转移。 低于/不高于或不等于/进位为1转移JB/JNAE/JC OPR; CF=1且ZF=0 不低于/高于或等于/进位为0转移JNB/JAE/JNC OPR; CF=0或ZF=1,低于或等于/不高于转移 JBE/JNA OPR; CF=1或CF=1 不低于或不等于/高于转移 JNBE/JA OPR; CF=0且ZF=0 (3)比较两个带符号数,并根据比较结果转移。 小于或者不大于或者等于转移 JL(或JNG

8、E) OPR SFZF=1 小于或者不大于或者等于转移 JNL(或JGE) OPR SFZF=0 小于或等于,或者不大于转移 JLE(或JNG) OPR (SFZF)ZF=1 小于或等于,或者不大于转移 JNLE(或JG) OPR (SFZF)ZF=0,(4)测试CX的值为0则转移指令 JCXZ OPR; (CX)=0则转移3、循环控制指令 (1)LOOP(LOOP)循环指令格式:LOOP OPR测试条件:(CX)0 (2)LOOPZ/LOOPE(Loop while zero or equal) 当为零或相等时循环指令格式:LOOPZ(或LOOPE) OPR测试条件:ZF=1且(CX)0 (

9、3)LOOPNZ/LOOPNE(Loop while nonzero, or not equal)当不为零或不相等时循环指令格式:LOOPNZ(或LOOPNE) OPR测试条件:ZF=0且(CX)0,4、子程序 CALL调用指令 (1)段内直接调用格式: CALL DST执行的操作:(IP)(SP)2;(SP)1,(SP)(IP);(IP)(IP)D16; ()段内间接调用格式: CALL DST执行的操作:(SP)(SP)2;(SP)1,(SP)(IP);(IP)(EA) ()段间直接调用格式: CALL DST,执行的操作:(SP)(SP)2;(SP)1,(SP)(CS);(SP)(SP)

10、2;(SP)1,(SP)(IP);(IP)偏移地址(指令的第2,3个字节);(CS)段地址(指令的第4,5个字节)。 (4)段间间接调用格式: CALL DST执行的操作:(SP)(SP)2;(SP)1,(SP)(CS);(SP)(SP)2;(SP)1,(SP)(IP);(IP)(EA);(CS)(EA2),RET返回指令 段内返回 RET ;(IP) (SP)+1,(SP)(SP)(SP)+2 段内带立即数返回 RET EXP;(IP)(SP)+1,(SP)(SP)(SP)+2(SP)(SP)+DISP16位移量 段间返回 RET;(IP)(SP)+1,(SP)(SP)(SP)+2 (CS)(SP)+1,(SP) (SP)(SP)+2,段间带立即数返回 RET EXP;(IP)(SP)+1,(SP)(SP)(SP)+2(CS)(SP)+1,(SP)(SP)(SP)+2(SP)(SP)+DISP16位移量 3、2、6 处理机控制指令 1标志处理指令 (1)CLC进位位置0指令(Clear carry) CF 0 (2)CMC进位位求反指令(Complement carry)CFCF (3)STC进位位置1指令(Set carry)CF1 (4)CLD方向标志置0指令(Clear direction) DF0,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号