TIAv17环境下再次学习练习STL-73位移指令
(2024-02-14 19:10:04)
标签:
西门子tiastl编程位移指令 |
分类: 西门子软硬件 |
继续学习TIA环境下STL编程,这一篇开始学习位移指令。
可使用移位指令逐位左移或右移累加器 1
中低字的内容或整个累加器的内容(参见 CPU 寄存器)。左移n
位相当于将累加器的内容乘以"2 n ";右移 n 位相当于将累加器的内容除以"2 n
"。例如,将以二进制格式表示的十进制数 3 左移 3
位时,在累加器中出现相当于十进制数 24 的二进制编码。将以二进制格式表示的十进制数 16 右移 2 位时,在累加器中出现相当于十进制数 4
的二进制编码。
移位指令后的数字或在累加器 2
的低字低字节中的数值表示要移位的数目。由零或符号位的信号状态(0
代表正数、1 代表负数)填充移位指令空出的位。将最后一个移出的位装载到状态字的 CC 1 位中。复位状态字的 CC 0 和 OV 位为 0。可使用跳转指令来判断 CC 1
位。移位运算是无条件的,即,它们的执行不需要任何特殊的条件,且不影响逻辑运算的结果。
下列移位指令可用:
- SSI 带符号整型移位(16 位)
- SSD 带符号长整型移位(32 位)
- SLW 左移字(16 位)
- SRW 右移字(16 位)
- SLD 左移双字(32 位)
- SRD 右移双字(32 位)