恭喜,你发布的帖子
发布于 2016-11-14 15:42:58
13楼
OB1程序:
L P##Total
LAR1
L B#16#10
T B [AR1,P#0.0]
L B#16#5
T B [AR1,P#1.0]
L 20
T W [AR1,P#2.0]
L B#16#1
T W [AR1,P#4.0]
L B#16#0
T D [AR1,P#6.0]
L P##Odd
LAR1
L B#16#10
T B [AR1,P#0.0]
L B#16#5
T B [AR1,P#1.0]
L 20
T W [AR1,P#2.0]
L B#16#2
T W [AR1,P#4.0]
L B#16#0
T D [AR1,P#6.0]
L P##Even
LAR1
L B#16#10
T B [AR1,P#0.0]
L B#16#5
T B [AR1,P#1.0]
L 20
T W [AR1,P#2.0]
L B#16#3
T W [AR1,P#4.0]
L B#16#0
T D [AR1,P#6.0]
CALL FC 1
Total:=#Total
Odd :=#Odd
Even :=#Even
定义3个Any指针
FC1:
L P##Total
LAR1
L B [AR1,P#1.0]
T #Total_DB_Type
L W [AR1,P#2.0]
T #Total_DB_Quantity
L W [AR1,P#4.0]
T #Total_DB_Number
L D [AR1,P#6.0]
T #Total_DB_StartAddress
L P##Odd
LAR1
L B [AR1,P#1.0]
T #Odd_DB_Type
L W [AR1,P#2.0]
T #Odd_DB_Quantity
L W [AR1,P#4.0]
T #Odd_DB_Number
L D [AR1,P#6.0]
T #Odd_DB_StartAddress
L P##Even
LAR1
L B [AR1,P#1.0]
T #Even_DB_Type
L W [AR1,P#2.0]
T #Even_DB_Quantity
L W [AR1,P#4.0]
T #Even_DB_Number
L D [AR1,P#6.0]
T #Even_DB_StartAddress
解析3个Any指针
L #Total_DB_StartAddress
LAR1
L #Odd_DB_StartAddress
LAR2
L #Total_DB_Quantity
Nex1: T #CycleCount
OPN DB [#Total_DB_Number]
L DBW [AR1,P#0.0]
L 2
/I
T LD 30
A(
L #Remainder
L 0
==I
)
JC M001
L DBW [AR1,P#0.0]
OPN DB [#Odd_DB_Number]
T DBW [AR2,P#0.0]
+AR2 P#2.0
M001: NOP 0
+AR1 P#2.0
L #CycleCount
LOOP Nex1
//提取奇数
L #Total_DB_StartAddress
LAR1
L #Even_DB_StartAddress
LAR2
L #Total_DB_Quantity
Nex2: T #CycleCount
OPN DB [#Total_DB_Number]
L DBW [AR1,P#0.0]
L 2
/I
T LD 30
A(
L #Remainder
L 0
==I
)
JCN M002
L DBW [AR1,P#0.0]
OPN DB [#Even_DB_Number]
T DBW [AR2,P#0.0]
+AR2 P#2.0
M002: NOP 0
+AR1 P#2.0
L #CycleCount
LOOP Nex2
//提取偶数
测试:
L 1
T MW 0
L 0
T MD 10
OPN DB 1
L 20
Next: T MD 20
L MW 0
T DBW [MD 10]
L MW 0
L 1
+I
T MW 0
L MD 10
L 2
SLW 3
+I
T MD 10
L MD 20
LOOP Next
在DB1中填写1-20 20个整数
DB2中是提取的奇数
DB3中是提取的偶数
请填写推广理由:
分享
只看
楼主