### DNEG

指令说明：

DNEG 为 32 位连续执行型补码指令，是将操作数[D+1,D]的数据内容中的 32 个数据位按位取反（0→1,1→0）后再加一，运算的结果传送到原先操作数[D+1,D]中。

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

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

操作数：

D：KnY, 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 的数据位变化

D1 的16个数据为高位 | D0 的16个数据为低位
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 的数据按位取反，它们的数据变化

D1 的16个数据为高位 | D0 的16个数据为低位
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 取反后的数据再加一，它们的数据变化

D1 的16个数据为高位 | D0 的16个数据为低位
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。