TIAv17环境下再次学习练习STL-76SLW左移字(16位)

标签:
西门子tiastl编程slw指令 |
分类: 西门子软硬件 |
继续学习TIA环境下STL编程,本篇学习SLW 左移字(16
位)。
SLW(左移字)只逐位向左移动 ACCU 1-L
的内容。由零填充移位指令空出的位。将最后一个移出的位装载到状态字的
CC 1 位中。地址<数目>或 ACCU 2-L-L 中的数值指定要移位的位数目。
SLW
<数目>:地址<数目>指定移位数目。允许的数值范围为 0 - 15。当<数目>大于 0
时,将状态字的位 CC 和 OV 复位为
0。当<数目>等于 0 时,则将此移位指令视为 NOP 操作。
SLW:移位数目由 ACCU 2-L-L 中的数值指定。可能的数值范围为
0 - 255。移位数目大于 16 时,始终产生相同的结果:ACCU
1-L = 0、CC 1 = 0、CC 0 = 0 和 OV = 0。当 0 < 移位数目 <= 16
时,复位状态字的位 CC 0 和 OV 为
0。当移位数目为 0 时,则将移位指令视为 NOP 操作。
在前面练习的基础上继续。
十进制11转换成二进制是0000,0000,0000,1011,左移第一次结果是0000,0000,0001,0110,左移第二次结果是0000,0000,0010,1100,左移第三次结果是0000,0000,0101,1000,最后一次移出的数是0,所以CC1=0,INT18数值是88
十进制-11,转换成二进制是1000,0000,0000,1011,反码是1111,1111,1111,0100,补码是1111,1111,1111,0101,左移第一次结果是1111,1111,1110,1010,左移第二次结果是1111,1111,1101,0100,左移第三次结果是1111,1111,1010,1000,最后一次移出的数是1,所以CC1=1,还原成反码是1111,1111,1010,0111,还原成原码是1000,0000,0101,1000,转换成十进制数是-88