最近在上计算机原理课,接触到了部分汇编代码的问题,在国内大部分技术网站上都找不到CMOVG命令的清楚介绍。于是借助条件,到墙外搜索了一把。果然非同反响
上干货:
先解析一下命令:CMOVcc---C即conditional 条件的;MOV不用多说;cc是condition code条件代码
下面是从:64-ia-32-architectures-software-developer-manual-325462 手册上找得到的,手册可以自己在intel网站山下,但是还是百思不得其解
CMOVG/CMOVNLE | Conditional move if greater/Conditional move if not less or equal |
给个链接:https://www.tptp.cc/mirrors/siyobik.info/instruction/CMOVcc.html 上面有CMOVcc命令的几乎所有解释。只是是英文版的
CMOVcc :Move if greater (ZF=0 and SF=OF).
下面是我觉得重要的地方:
1 目的操作数只能是寄存器值,就是目的地只能是寄存器
2 不支持8bit操作数
3 部分IA-32 处理器可能不支持CMOVcc指令