指令说明:
NEG为16位连续执行型补码指令,是将操作数D的数据内容中的16个数据位按位取反(0→1,1→0)后再加一,运算的结果传送到原先操作数D中。
因为连续执行型指令则在每一个扫描周期都执行运算,必须要脉冲指令触发条件下使用NEG指令,务必引起注意。
处理的数值范围:-32768 ~ +32767
操作数:
D:KnY, KnM, KnS,T,C,D,Z,V,LV,DT
指令格式:[NEG D ]
编程示例:
假设D0的数据为-45,X0导通,BON指令执行,当D0的16个数据位(b0~b15)中的b15为1(因为D0的值是负数)时,M0为ON。当M0闭合时,产生一个上升沿脉冲,使NEG指令执行一次,得到D0的绝对值,D0为45。

NEG指令执行后,D0数据的变化如下。
D0= -45时,它的16个数据位:
|
软元件 |
b15 |
b14 |
b13 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
D0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
按位取反后,它的16个数据位:
|
软元件 |
b15 |
b14 |
b13 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
D0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
加一后,它的16个数据位:
|
软元件 |
b15 |
b14 |
b13 |
b12 |
b11 |
b10 |
b9 |
b8 |
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b0 |
|
D0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
此时,D0=45。