反汇编我遇到cmove指令的可执行文件 . 我已经在互联网上搜索了但是我发现它只是一个有条件的移动,如果源和目的地相等则会发生mov . 我还没有理解的是为什么我需要它,因为它不会改变操作数 . 如果有必要的话,请你用一个例子来解释我的目的
谢谢
CMOVcc 指令不比较源和目标 . 它使用先前比较的标志(或设置标志的其他操作)来确定是否应该进行移动 .
CMOVcc
例;如果 eax 和 ebx 相等,则将 edx 复制为 ecx :
eax
ebx
edx
ecx
cmp eax, ebx cmoveq ecx, edx
这与以下相同:
cmp eax, ebx jne skip mov ecx, edx skip:
1 回答
CMOVcc
指令不比较源和目标 . 它使用先前比较的标志(或设置标志的其他操作)来确定是否应该进行移动 .例;如果
eax
和ebx
相等,则将edx
复制为ecx
:这与以下相同: