例5叫】P指令举例 MP SHORTPTR L1;段内短转移 MP NEAR PTR MP DWORD PTR【B×;段间间接转移 MPWORDPTRBX;段内间接转 IP DWORD PTRIBP 专移到地址在堆栈段的程序 P DWORD PTRIBP](D:段间间接转移 令对标志位无影响。 MP指令不能构成分支程序,但在分支程序设计中往往需要用它将各 分支的出口汇集到一起。另 外当条件转移指令的转移范围超过-128~+127字节时,也往往要借 了MP指虽然变化不少,大多数时候只用到“MP标号”的简单形
例5-1】JMP指令举例。 C1)JMP SHORTPTR L1;段内短转移 (2)JMP NEAR PTR L2;段内直接转移 (3)JMPFARPTRL3;段间直接转移 (4)JMP DWORD PTR【Bx];段间间接转移 (5)JMPWORDPTRBX;段内间接转移 (6)JMP DWORD PTR[BP+12];转移到地址在堆栈段的程序 (7)JMP DWORD PTR[BP]【DI];段间间接转移 JMP指令对标志位无影响。 JMP指令不能构成分支程序,但在分支程序设计中往往需要用它将各 分支的出口汇集到一起。另 外当条件转移指令的转移范围超过-128~+127字节时,也往往要借 助JMP指令来实现预定的转移。 JMP指令虽然变化不少,但大多数时候只用到“JMP标号”的简单形 式
第3条件转移指令 1概述 无条件转移指令不同,条件转移指令是根据前面形成的条件 来确定转移去向。 条件转移指含的条件主要电标志寄存器给定,根据zECF、SE OF CMP、TEST指令常用于形成转移的条件。CX的值是 为0也常表示转移条件。 (3)条件转移指令共有19条,分为简单条件转移指令、无符号数条 件转移指 数条件转移指令及CX条件转移指令4类。 (4)所有条件转移只能是段内直接短转移,而且与]P指令一样不影 响狂何标志位 (5)条件转移指令的一般格式为:条件转移指令助记符短标号
第3节 条件转移指令 1.概述 (1) 与无条件转移指令不同,条件转移指令是根据前面形成的条件 来确定转移去向。 (2)条件转移指令的条件主要由标志寄存器给定,根据ZF、CF、SF、 OF及PF等标志位的值来转移。能改变这些标志位的运算和指令均可形 成转移条件,CMP、TEST指令常用于形成转移的条件。CX的值是否 为0也常表示转移条件。 (3) 条件转移指令共有19条,分为简单条件转移指令、无符号数条 件转移指令、符号数条件转移指令及CX条件转移指令4类。 (4)所有条件转移只能是段内直接短转移,而且与JMP指令一样不影 响任何标志位。 (5)条件转移指令的一般格式为:条件转移指令助记符短标号
2简单条件转移指 简单条件转移指令是仅取决于2、CF、SF、OF及PF中某一标志位的条件 转移指 志ZCF、SFOF及PF的值可以表示10种状态,因而设置了10条简单条 件转移指令,见 表5-1。 (例52】简单条件转移指令举例。 CMP AX, 0 J山AX为0时转L1 ADD AX, 1234H j2;溢出时转L2 表51简单条件转移指令 助记符功能转移条作勒记功能 转移条件 JC有进位(或借位)时转移cF1|Ns结果为正数时转移 SF=0 NC无进位(或借位)时转移cF=00有溢出时转移 OF=1 丿ZJE|结果为零/相等时转移 ZF=1|N0无溢出时转移 OF=0 NZNE结果不为零/不相等时转移2F0|PE偶校验时转移 PF= Is|结果为负数时转移 sF=1|NP』Po奇校验时转移 PF=0
2.简单条件转移指令 简单条件转移指令是仅取决于ZF、CF、SF、OF及PF中某一标志位的条件 转移指令。标 志ZF、CF、SF、OF及PF的值可以表示10种状态,因而设置了10条简单条 件转移指令,见 表5-1。 【例5—2】简单条件转移指令举例。 CMP AX,0 JELl;AX为0时转L1 ADD AX,1234H JOL2;溢出时转L2
3无符号数条件转移指令 无符号数条件转移指令视比较对象为无符号数,往往跟在比较指令后 对无符号数条件转移指令的“比较”用高于( Above)、低手(BeO和等 于(Equa 示,见表52,表中A、B为无符号数 表52无符号数条件转移指令 助记符 功能 转移条件 JAJNBE高于不低于且不等于(即A>B)时转移 CF0且ZF=0 JAEJNB高于等于不低于(即A≥B)时转移 CF=0或ZF=1 BNAE低于不高于且不等于(即A<B)时转移 CF=1且ZF=0 JBEJNA低于等于不高于(即A≤B)时转移 CF=或ZF=1 例5-3】X、Y为无符号数,计算XY 程序段如下 MOV AX,Ⅹ CMP AX,Y比较 JAELLL XCHG AX,Y:如果AX<Y,交换AX、Y LLL: SUBAX, Y
3.无符号数条件转移指令 无符号数条件转移指令视比较对象为无符号数,往往跟在比较指令后。 对无符号数条件转移指令的“比较”用高于(Above)、低于(BelOW)和等 于(Equal) 表示,见表5—2,表中A、B为无符号数。 【例5—3】X、Y为无符号数,计算l X-Y l。 程序段如下: MOV AX,X CMP AX,Y比较 JAELLL XCHG AX,Y:如果AX<Y,交换AX、Y LLL:SUBAX,Y