指令说明:
SMOV是16位连续执行型位移动指令。以位数为单位(4位)进行数据的分配合成。
传送源S和传送目标先被转换成4位的BCD,然后将S中m1(位数从1开始)开始从高位到低位的m2个位数部分合并到D的第n位数开始的位置,最后将合并后的数据转换成BIN并保存到D中。
操作数:
S :KnX, KnY, KnM, KnS,T,C,D,V,Z,LV,DT,@
m1:K,H
m2:K,H
D: KnY, KnM, KnS, T,C,D,V,Z,LV,DT
n: K,H
指令格式:[SMOV S m1 m2 D n]
编程示例:
X0触点闭合,将常数251传入D0,D2初始值为0。
X1触点闭合,执行SMOV指令,将D0中的数值转换成4位BCD码为0251,D2中的数值转换成4位BCD码为0000,将D0从第4位开始往下取2位数据,即02,传递到D2的第3位开始的低2位,此时D2用BCD码表示为0020。
再将D2的BCD码转换成BIN后保存到D2中。D2的第1位和第4位传送前后数据不变化。

D1、D2数值变化如下:
|
执行前 |
D0的BCD码 |
D2的BCD码 | ||||||
|
A4 |
A3 |
A2 |
A1 |
B4 |
B3 |
B2 |
B1 | |
|
0 |
2 |
5 |
1 |
0 |
0 |
0 |
0 | |
|
执行后 |
D0的BCD码 |
D2的BCD码 | ||||||
|
A4 |
A3 |
A2 |
A1 |
B4 |
A4 |
A3 |
B1 | |
|
0 |
2 |
5 |
1 |
0 |
0 |
2 |
0 | |
将D0中的数值转换成4位BCD码为5364,D3中的数值转换成4位BCD码为0000,从第4位开始往下取3位数据,即536,传递到D3的第3位开始的低3位,此时D3用BCD码表示为0536。
再将D3的BCD码转换成BIN后保存到D3中。D3的第4位传送前后数据不变化。

|
执行前 |
D0的BCD码 |
D3的BCD码 | ||||||
|
A4 |
A3 |
A2 |
A1 |
B4 |
B3 |
B2 |
B1 | |
|
5 |
3 |
6 |
4 |
0 |
0 |
0 |
0 | |
|
执行后 |
D0的BCD码 |
D3的BCD码 | ||||||
|
A4 |
A3 |
A2 |
A1 |
B4 |
A4 |
A3 |
B1 | |
|
5 |
3 |
6 |
4 |
0 |
5 |
3 |
6 | |