指令说明:
ENCOP是16位脉冲执行型编码指令,即指令激活一次,执行一次编码运算。是将源操作数[S]开始的2n个位数进行编码,其结果用目标操作数[D]的n位二进制数置1来表示。
源操作数[S]为位软元件时,n的取值范围是1≤n≤8;目标操作数[S]为字软元件时,n的取值范围是1≤n≤4,n=0时不处理,n在取值范围之外时运算错误标志动作。
[S]的高位置1时,忽略低位置1的状态。
操作数:
S:X,Y, M, S,T,C,D, Z,V,LV,DT
D:T,C,D, Z,V,LV,DT
n:K,H,@
指令格式:[ENCOP S D n ]
编程示例:
当源地址是字软元件D2时,X0闭合,ENCOP指令执行,n=K3时,将D0的2n个位数b7~b0置1的状态进行编码后传送到D2的低3位b2~b0中。
例如D0的b7位为1时(此时b6~b0可忽略),进行编码转换成二进制数的低3位111,然后传送到D2的低3位b2~b0中,D2的b2=1,b1=1,b0=1,D2为7。例如D0的b5位为1时,进行编码转换成二进制数的低3位101传送到D2的低3位b2~b0中,所以b2=1,b1=0,b0=1,D2为5。如果D0的b7位与b5都为1时,只运算高位b7的位,忽略低位b5的位。
