恭喜,你发布的帖子
发布于 2016-11-15 17:02:14
17楼
按照N版主的要求编了一下,因为DB2和DB3大同小异,就只写了DB2的程序,可以运行通过,但只是用的无参FC。程序如下,供参考:
CALL "BLKMOV"
SRCBLK :=P#DB1.DBX 0.0 INT 20
RET_VAL:=MW10
DSTBLK :=P#DB2.DBX 0.0 INT 20
NOP 0
CALL "BLKMOV"
SRCBLK :=P#DB1.DBX 0.0 INT 20
RET_VAL:=MW12
DSTBLK :=P#DB3.DBX 0.0 INT 20
NOP 0
OPN DB 2
LAR1 P#DBX 0.0
L 20
b00: T #length
L W [AR1,P#0.0]
L W#16#1
AW
L W#16#0
==I //偶数
JCN a00 //奇数跳转处理
+AR1 P#2.0 //偶数指向下一个
L #length
L 1
-I
T #length
JU c00
a00: L #length
L 1
-I
T #len //移位次数
TAR1 AR2
L #len
next: T #len
L W [AR2,P#2.0]
T W [AR2,P#0.0]
+AR2 P#2.0
L #len
LOOP next
L 0
T W [AR2,P#0.0] //最高位数据清零
+AR1 P#2.0
c00: L #length
L 1
-I
T #length
LOOP b00
NOP 0
不太明白为何最后AR1和AR2都是DB20,请斧正!
请填写推广理由:
分享
只看
楼主