目录 上一页 下一页 下一章

-282- PC机汇编语言实战精解

表10-2 条件转移指令
指令助记符用途条件其它形式
JZ(Jump if Zero)结果为0则跳转ZF=1JE(Jump if Equal)
JNZ(Jump if Not Zero)结果不为0则跳转ZF=0JNE(Jump if Not Equal)
JS(Jump if Sign)结果为负则跳转SF=1
JNS(Jump if Not Sign)结果为正则跳转SF=0
JO(Jump if Overflow)有溢出则跳转OF=1
JNO(Jump if Not Overflow)无溢出则跳转OF=0
JP(Jump if Parity)奇偶位为1则跳转PF=1JPE(Jump if Parity Even)
JNP(Jump if Not Parity)奇偶位为0则跳转PF=0JPO(Jump if Parity Odd)
JB(Jump if Below)低于(不高于且不等于、进位标志为1)则跳转CF=1JC(Jump if Carry)
JNAE(Jump if Not Above or Equal)
JNB(Jump if Not Below)不低于(高于或等于、进位标志为0)则跳转CF=0JNC(Jump if Not Carry)
JAE(Jump if Above or Equal)
JBE(Jump if Below or Equal)低于或等于则跳转CF or ZF=1JNA(Jump if Not Above)
JNBE(Jump if Not Below or Equal)不低于或等于(高于)则跳转CF or ZF=0JA(Jump if Above)
JL(Jump if Less)小于则跳转SF xor OF=1JNGE(Jump if Not Great or Equal)
JNL(Jump if Not Less)不小于则跳转SF xor OF=0JGE(Jump if Great or Equal)
JLE(Jump if Less or Equal)小于或等于则跳转(SF xor OF)or ZF=1JNG(Jump if Not Great)
JNLE(Jump if Not Less or Equal)不小于或不等于则跳转(SF xor OF)or ZF=0JG(Jump if Great)
JCXZ(Jump if CX is Zreo)当CX寄存器为0时跳转CX=0

助记符:LOOPZ(Loop while Zero)
用 途:根据CX寄存器的值与ZF标志完成循环
格 式:LOOPZ 目的地址
执 行:若CX 0且ZF=1转移至目的地址继续执行,若CX=0或ZF=0则退出循
    环,执行下面的指令
  与这个指令相对的就是LOOPNZ,这两个指令与前面讨论过的LOOP指令有一个共同点,就是循环计数都要置入CX寄存器内,所不同的是LOOPZ/LOOPNZ还要判断ZF标志,只有ZF=1时LOOPZ才执行,反之当ZF=0时LOOPNZ执行。同REP指令前缀一样,LOOPZ/LOOPNZ有时也被写成LOOPE/LOOPNE,字母"E"同样表示"Equal"。
  (2)算术运算指令
  常用的算术运算指令我们都已经学过了,如加减乘除,增1减1,进位借位等,不过还有一个问题我们还没有讨论,就是带符号数的问题。当然了,首先需要指出的是在加减法运算中无需考虑这个问题,这是采用补码表示数带来的优点。而乘除法则例外,比如计算80H 2,采用MUL指令将得结果0100H,MUL指令将80H看作是无符号数128。如果我们需要计算的-128 2,就要采用带符号数的乘除指令--IMUL与IDIV:

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章