当前位置 主页 > 网站技术 > 代码类 >

    汇编跳转指令使用总结

    栏目:代码类 时间:2020-01-24 09:05

    虽然jmp指令提供了控制转移,但是它不允许进行任何复杂的判断。80x86条件跳转指令提供了这种判断。条件跳转指令是创建循环和实现其他条件执行语句。条件跳转指令检查一个或多个标志位,判断它们是否匹配某个特殊条件(就像setcc指令):如果标志匹配成功,该指令就将控制转移到目标位置;如果匹配失败,CPU忽略该条件跳转指令而继续执行下一条指令。条件跳转指令有一个限制:目标标号的位置必须在跳转指令本身附近32768字节范围内,这通常对应着8000~32000条机器指令。一般情况下不会超过这种限制。

    用自己的话总结:条件跳转指令是指jz,jg..等等指令,这些指令跳转方式是根据标志位的状态进行跳转,而设置这些标志的常见指令为cmp和test指令,所以他们经常搭配使用(应该是必须的)。即跳转指令前一行要吗有cmp指令要吗有test指令。

    汇编标志位:

    标志名                          标志 1              标志 0

    OF (溢出标志)                 OV                  NV

    DF  (方向标志)                                         UP                  DN

    IF (中断标志)                 DI                  EI

    SF (符号标志位)               PL                  NG

    ZF (零标志)                   NZ                  ZR

    AF (辅助进位标志位)           NA                  AC

    PF (奇偶标志)                 PO                  PE

    CF (进位标志)                 NC                  CY

    反汇编窗口,对应的标志位(双击后面的数字可改变其状态)