指令说明:
DNEGP为32位脉冲执行型补码指令,即指令激活一次,执行一次补码运算。是将操作数[D+1,D]的数据内容中的32个数据位按位取反(0→1,1→0)后再加一,运算的结果传送到原先操作数[D+1,D]中。
程序在循环扫描时,因为DNEG指令具有连续执行型,所以它操作的软元件的数据不断变化,所以在数据的补码运算一般用脉冲执行型的DNEGP指令。
处理的数值范围:-2147483648 ~ +2147483647
操作数:
D:KnY, KnM, KnS,T,C,D,Z,V,LV,DT
指令格式:[DNEGP D ]
编程示例:
满足条件后,D1D0的数据为50000,注意此时的X0不是上升沿脉冲触发触点,因为DNEGP具有脉冲执行型,当X0闭合时,D1D0的数据也只进行一次补码运算,运算后的数据传送到D1D0,此时D1D0为-50000。

D1D0=50000时,执行DNEGP指令,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。