### SMOV

指令说明：

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