DNEG

指令说明:

       DNEG32位连续执行型补码指令,是将操作数[D+1,D]的数据内容中的32个数据位按位取反(01,10)后再加一,运算的结果传送到原先操作数[D+1,D]中。

因为连续执行型指令则在每一个扫描周期都执行运算,必须要脉冲指令触发条件下使用DNEG指令,务必引起注意。

处理的数值范围:-2147483648 ~ +2147483647

操作数:

       DKnY, KnM, KnS,T,C,D,Z,V,LV,DT

指令格式:[DNEG  D ]

编程示例:

控制器上电,M8002瞬间导通一次,DMOV指令执行,将常数50000传送到D1D0,当X0的上升沿脉冲触点触发时,DNEG指令执行,将D1D0里面的32个数据位按位取反后加一,补码后的D1D0的数据为-50000,是原来的负数。

D1D0=50000时,执行DNEG指令,D1D0的数据位变化

D116个数据为高位

D016个数据为低位

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

1

1

0

1

0

1

0

0

0

0

D1D0的数据按位取反,它们的数据变化

D116个数据为高位

D016个数据为低位

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

1

1

1

1

0

0

1

0

1

0

1

1

1

1

D1D0取反后的数据再加一,它们的数据变化

D116个数据为高位

D016个数据为低位

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

1

1

1

1

0

0

1

0

1

1

0

0

0

0

D1D0的数据经过取反加一运算后,D1D0= -50000