恭喜,你发布的帖子
发布于 2016-08-17 09:21:06
4楼
有一个做法,但是感觉但是执行起来很累,首先写一个块,这个块负责进行两个数组之间的比较,然后在做一个双循环的程序,在这个双循环里头做计数,当数值大于5时就认为有两个数组完全相同。具体程序如下,但是这里做的是4个数组,每个数组四个数据的比较,
比较的块FC3
CLR
SET
R #OUT1 //OUT bool
L 0
T #TEMP4 //temp word
L #DB_NO //IN WORD
T #TEMP1 //TEMP WORD
L #START1 //IN DWORD
LAR1
L #START2 //IN DWORD
LAR2
OPN DB [#TEMP1]
L #LOOP_NO
H002: T #TEMP5 //TEMP WORD
L DBW [AR1,P#0.0]
L DBW [AR2,P#0.0]
==I
JCN H001
L #TEMP4
+ 1
T #TEMP4
H001: +AR1 P#2.0
+AR2 P#2.0
L #TEMP5
LOOP H002
L #TEMP4
L #LOOP_NO
==I
S #OUT1
双循环调用的程序:
CLR
SET
R M 509.0 //输出的变量
L 0
T MW 512 //初始化
L L#0
L DW#16#84000000
OD
T MD 520 //初始化指针
//外循环
L 4
H004: T MW 500 //外
//内循环
L 0
T MW 510 //初始化,这个数据是记录每次比较后的数值,都相同就等于4
L L#0
L DW#16#84000000
OD
T MD 524 //初始化指针
L 4
H003: T MW 502
CALL FC 3
DB_NO :=4
START1 :=MD520
START2 :=MD524
LOOP_NO:=4
OUT1 :=#TEMP3
A #TEMP3
JCN H001
L MW 510
+ 1
T MW 510 //每次比较都相同就加1
H001: L MD 524
+ 64
T MD 524
H002: L MW 502
LOOP H003
//内循环
L MW 510
L MW 512
+I
T MW 512 //将每次比较后的数值累加后给MW512
L MD 520
+ 64
T MD 520
L MW 500
LOOP H004
//外循环
L MW 512
L 5
>=I
S M 509.0 //比较MW512的数值;
就是的,我也做了一个,数据太多,循环彼此嵌套,老是陷入死循环
请填写推广理由:
分享
只看
楼主