恭喜,你发布的帖子
发布于 2016-11-09 13:48:06
3楼
TEMP12和TEMP13是为了DB块的初始化使用的, 所以在ANY_J和ANY_O里做了一个编写ANY的一个过程,主要看LB LW LD 那些,其他的就是将输入的ANY拷贝到需要使用的变量里。在调用的时候要注意,数据的块的定义是INT数据,所以要写P#DB7.DBX0.0 INT 10否则数据长度会报错的,不能写成P#DB7.DBX0.0 byte 20
L P##ANY_S
LAR1
L W [AR1,P#2.0]
T #TEMP9
L W [AR1,P#4.0]
T #DBS
L D [AR1,P#6.0]
T #DZS
L P##ANY_J
LAR1
L B#16#10
T LB 28
L B [AR1,P#1.0]
T LB 29
L W [AR1,P#2.0]
T LW 30
L W [AR1,P#4.0]
T #DBJ
T LW 32
L D [AR1,P#6.0]
T #DZJ
T LD 34
L P##ANY_O
LAR1
L B#16#10
T LB 38
L B [AR1,P#1.0]
T LB 39
L W [AR1,P#2.0]
T LW 40
L W [AR1,P#4.0]
T #DBO
T LW 42
L D [AR1,P#6.0]
T #DZO
T LD 44
//以上就是读取ANY指针和编写两个指针TEMP12和TEMP13
L 0
T #TEMP14
CALL "FILL"
BVAL :=#TEMP14
RET_VAL:=#TEMP10
BLK :=#TEMP12
CALL "FILL"
BVAL :=#TEMP14
RET_VAL:=#TEMP11
BLK :=#TEMP13
//两个存放奇偶数的DB块进行初始化,否者有数值变化时之前的数据会有痕迹留下
OPN DB [#DBS]
OPN DI [#DBJ]
LAR1 #DZS
LAR2 #DZJ
L #TEMP9
A002: T #TEMP8
L DBW [AR1,P#0.0]
SRW 1
A >0
JCN A001
L DBW [AR1,P#0.0]
T DIW [AR2,P#0.0]
+AR2 P#2.0
A001: +AR1 P#2.0
L #TEMP8
LOOP A002
//奇数的比较程序
OPN DB [#DBS]
OPN DI [#DBO]
LAR1 #DZS
LAR2 #DZO
L #TEMP9
A003: T #TEMP7
L DBW [AR1,P#0.0]
SRW 1
A >0
JC A004
L DBW [AR1,P#0.0]
T DIW [AR2,P#0.0]
+AR2 P#2.0
A004: +AR1 P#2.0
L #TEMP7
LOOP A003
//偶数的比较程序
请填写推广理由:
分享
只看
楼主