首页 文章

x86程序集中cmove指令的用途?

提问于
浏览
7

反汇编我遇到cmove指令的可执行文件 . 我已经在互联网上搜索了但是我发现它只是一个有条件的移动,如果源和目的地相等则会发生mov . 我还没有理解的是为什么我需要它,因为它不会改变操作数 . 如果有必要的话,请你用一个例子来解释我的目的

谢谢

1 回答

  • 24

    CMOVcc 指令不比较源和目标 . 它使用先前比较的标志(或设置标志的其他操作)来确定是否应该进行移动 .

    例;如果 eaxebx 相等,则将 edx 复制为 ecx

    cmp eax, ebx
    cmoveq ecx, edx
    

    这与以下相同:

    cmp eax, ebx
    jne skip
      mov ecx, edx
    skip:
    

相关问题