例245a:比较无符号数 cmp ax,bx;比较ax和bx jnb next;若ax≥bx,转移 xchg ax,bx;若ax<bx,交换 next 结果:AX保存较大的无符号数 ⊙E
例2.45a:比较无符号数 cmp ax,bx ;比较ax和bx jnb next ;若ax≥bx,转移 xchg ax,bx ;若ax<bx,交换 next: ... 结果:AX保存较大的无符号数
第2章 比较有符号数大小 Jcc >有符号数的大( Greater)小(Less) 需要组合OF、SF标志,并利用zF标 志确定相等(Equa|) >两数的大小分成4种关系: (1)小于(不大于等于):JL(JNGE) (2)不小于(大于等于):JNL(JGE) (3)小于等于(不大于):JLE(JNG) (4)不小于等于(大于):JNLE(JG)
第 2 章 比较有符号数大小 ➢有符号数的大(Greater)小(Less) 需要组合OF、SF标志,并利用ZF标 志确定相等(Equal) ➢两数的大小分成4种关系: ⑴ 小于(不大于等于):JL(JNGE) ⑵ 不小于(大于等于):JNL(JGE) ⑶ 小于等于(不大于):JLE(JNG) ⑷ 不小于等于(大于):JNLE(JG ) Jcc
例245b:比较有符号数 cmp ax,bx;比较ax和bx jn1next;若ax≥bx,转移 xchg ax,bx;若ax<bx,交换 next 结果:AX保存较大的有符号数 ⊙E
例2.45b:比较有符号数 cmp ax,bx ;比较ax和bx jnl next ;若ax≥bx,转移 xchg ax,bx ;若ax<bx,交换 next: ... 结果:AX保存较大的有符号数
第2章 计数器CX为0转移 JCXZ label ;CX=0,发生转移:IP←IP+8位位移量 ;CX≠0,顺序执行 >这是一条较特殊的指令 >CX寄存器通常在程序中用做计数器 >JCXZ指令用来判断计数是否为0
第 2 章 计数器CX为0转移 ➢这是一条较特殊的指令 ➢CX寄存器通常在程序中用做计数器 ➢JCXZ指令用来判断计数是否为0 JCXZ label ;CX=0,发生转移:IP←IP+8位位移量 ;CX≠0,顺序执行
第2章 判断计数器为0(例236) mov Cx. 100 again: movsb ;传送一个字节 dj ec CX ;传送次数减1 nz again 判断传送次数cx是否为0 ;不为0(ZF=0),则转移;否则,结束 moⅴcx,100 again: JCXZ next;判断传送次数cx是否为0 moVs b dec cx cmp CX, O Jmp again JZ next next
判断计数器为0(例2.36) mov cx,100 again: movsb ;传送一个字节 dec cx ;传送次数减1 jnz again ;判断传送次数cx是否为0 ;不为0(ZF=0),则转移;否则,结束 第 2 章 mov cx,100 again: jcxz next ;判断传送次数cx是否为0 movsb dec cx jmp again next: ... cmp cx,0 jz next