CMP、ZCP、 XCH指令在应用上有何区别

cmp指令实际上是“做减法”将两數相减,将结果的相关信息填充标志位

计算机并不识别所计算的数是否是有符号的。但是计算机会提供一些标志位来指示这些数的计算结果的相关信息。

对于JA当CF和ZF为0时,跳转成立因为CF=0说明前面的cmp指令产生的结果并没有“借位”。结果是非负数同时ZF表示结果不为0,兩数不相等

对于JG,当ZF=0同时SF=OF时成立因为操作对象是有符号数,之所以仅凭SF符号位无法判断结果是否为正是因为存在有符号数计算的“溢出”现象。溢出导致符号位发生反转所以当SF与OF同时相等时,才能说明(SF=0, OF=0 没有溢出结果为正,正确;SF=1, OF=1 有溢出结果为负,但溢出现象反转了符号位真正的结果还是正数。)

我要回帖

 

随机推荐