汇编之使用标志寄存器进行指令转移

Posted arblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编之使用标志寄存器进行指令转移相关的知识,希望对你有一定的参考价值。

  1. 根据单个条件标志的设置情况转移

    指令 英文 含义 格式 测试条件
    JZ/JE jump if zero/equal 结果为零/相等则转移 JZ/JE OPR ZF=1
    JNZ/JNE jump if not zero/equal 结果不为零/不相等则转移 JNZ/JNE OPR ZF=0
    JS jump if sign 结果为负则转移 JS OPR SF=1
    JNS jump if not sign 结果为正则转移 JO OPR SF=0
    JO jump if overflow 溢出则转移 JO OPR OF=1
    JNO jump if not overflow 不溢出则转移 JNO OPR OF=0
    JP/JPE jump if parity/parity even 奇偶位为1则转移 JP/JPE OPR PF=1
    JNP/JNPE jump if not parity/parity even 奇偶位为0则转移 JNP/JNPE OPR PF=0
    JB/JNAE/JC jump if below/not above、not equal/carry 低于/不高于或不等于/进位为1则转移 JB/JNAE/JC OPR CF=1
    JNB/JAE/JNC jump if not below/ above、equal/not carry 不低于/高于或等于/进位为零则转移 JNB/JAE/JNC OPR CF=0

    适用于测试某一次运算的结果并根据其不同特征产生程序分支不同的处理的情况

  2. 比较两个无符号数,并根据比较的结果转移

    指令 英文 含义 格式 测试条件 等价于
    JB/JNAE/JC jump if below/not above、not equal/carry 低于/不高于或不等于/进位为1则转移 JB/JNAE/JC OPR CF=1 <
    JNB/JAE/JNC jump if not below/ above、equal/not carry 不低于/高于或等于/进位为零则转移 JNB/JAE/JNC OPR CF=0
    JBE/JNA jump if below/equal、not above 低于/等于、不高于则转移 JBE/JNA OPR CF并ZF=1
    JNBE/JA jump if not below/not equal、above 不低于/不等于、高于则转移 JNBE/JA OPR CF并ZF=0 >
  3. 比较两个带符号数,并根据比较的结果转移

    指令 英文 含义 格式 测试条件 等价于
    JL/JNGE jump if less、not greater/equal 小于、不大于/不等于则转移 JL/JNGE OPR SF异或CF=1 <
    JNL/JGE jump if not less、greater/equal 不小于、大于/等于则转移 JNL/JGE OPR SF异或CF=0
    JLE/JNG jump if less/equal、not greater 小于/等于、不大于则转移 JLE/JNG OPR (SF异或CF)并ZF=1
    JNLE/JG jump if not less/not equal、 greater 不小于/不等于、大于则转移 JNLE/JG OPR (SF异或CF)并ZF=0 >

 
注:OPR更改成标号名称

以上是关于汇编之使用标志寄存器进行指令转移的主要内容,如果未能解决你的问题,请参考以下文章

汇编学习笔记

汇编——目录

影响标志的霓虹汇编向量指令

[汇编]《汇编语言》第10章 CALL和RET指令

汇编语言转移指令&循环指令

汇编语言流程转移与子程序篇--05