控制转移指令
一、 实验目的
a) 熟悉、掌握各种控制转移指令格式及其功能
b) 学会使用控制转移指令来控制程序的执行流程
二、 实验重难点
a) 重点:实验中要用到不少控制转移指令,因此要熟悉、掌握 各类控制转移指令的指令格式及其功能。
1.无条件转移指令 JMP指令格式:JMP 标号 ;跳转到执行从标号地址开始的指令JMP 指令必须指定转移的目标地址,转移可分为两类:段内转移 和段间转移。
2. 条件转移指令 条件转移指令种类比较多,需要熟悉掌握常用的几种。1) 比较两个无符号数,并根据比较的结果转移JA(JB) ;大于(小于)指令格式:JA (JB) 标号 ;大于(小于)转到执行从标号处开始的指令 JE ;等于指令格式:JE 标号 ;等于转到执行从标号处开始的指令 JAE(JBE) ;大于等于(小于等于)指令格式:
JAE(JBE) 标号;大于等于(小于等于)转移到从标号处开始的指 令2) 比较两个带符号数,并根据比较结果转移JL(JG) ;小于(大于)
JE ;等于JLE(JGE) ;小于等于(大于等于) 指令格式与前面三种相通。3) 根据单个条件标志的设置情况转移JC(JNC) ;根据 CF 标志位的设置情况转移指令格式:JC(JNC) 标号测试条件:CF=1(CF=0)JZ(JNZ) ;根据 ZF 标志位的设置情况转移指令格式:JZ(JNZ) 标号测试条件:ZF=1(ZF=0)JO(JNO) ;根据 OF 标志位的设置情况转移JO 溢出转移, JNO 不溢出转移指令格式:JO(JNO) 标号测试条件:OF=1(OF=0)b) 难点:转移指令的选取决定着程序的优劣及可行性,合理的选择转移指令可以避免程序陷入死循环或少循环,同样可以 节省程序运行的时间,提高效率;而根据比较结果转移的条 件转移指令前都有一条 CMP 指令,运用时须注意。
三、 程序代码实现求寄存器 al 中给定数据中的“1”的个数