CMP在三菱plc中的应用

CMP?D0?D2?M0这条指令是比较指令,比较结果返回给

如果D0 & gtD2,M0=1,如果D0=D2,M1=1,如果D0

CMP用于比较16位数据,比较数据的范围是-32768到+32767。比较数据类型可以是常熟K,H,数据寄存器D,计数器C,时间继电器T,连续地址(如K1X0,K2Y0,K3M0,K2S0等。).

扩展数据:

CF=1表示有进位或借位,cmp是减法运算,所以可以看成借位。因此,此时OPRD 1 < oprd2

CF=0表示没有借款,但此时要注意ZF是否为0。如果是0,说明结果不是0,所以此时oprd 1 & gt;oprd2

有符号时:如果SF=0,OF=0,说明此时的值为正,没有溢出。可以直观地看出,oprd 1 & gt;oprd2如果SF=1,OF=0表示此时的值为负,没有溢出,则为OPRD 1

如果SF=0,OF=1,说明此时的值为正,存在溢出。可以看出OPRD 1

这个判断的后两个原因是溢出的本质:两个数都是正的,相加时数值是负的,表示溢出;两个数都是负数,相加时数值为正,表示溢出;所以,正溢与负溢,负溢与正溢。

参考资料:

百度百科-CMP指令