恭喜,你发布的帖子
发布于 2016-11-08 18:07:02
1楼
FUNCTION "ALL_ODD_EVEN" : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
IN0 : ANY ;
END_VAR
VAR_OUTPUT
OUT1 : ANY ;
OUT2 : ANY ;
END_VAR
VAR_TEMP
ALL : STRUCT
DBNO : INT ;
POSI : INT ;
ADDR : DWORD ;
LENGTH : INT ;
END_STRUCT ;
ODD : STRUCT
DBNO : INT ;
POSI : INT ;
ADDR : DWORD ;
END_STRUCT ;
EVEN : STRUCT
DBNO : INT ;
POSI : INT ;
ADDR : DWORD ;
END_STRUCT ;
END_VAR
BEGIN
NETWORK
TITLE =
L P##IN0;
LAR1 ;
L W [AR1,P#2.0];
SRD 1;
T #ALL.LENGTH;
L W [AR1,P#4.0];
T #ALL.DBNO;
L D [AR1,P#6.0];
T #ALL.ADDR;
L P##OUT1;
LAR1 ;
L W [AR1,P#4.0];
T #ODD.DBNO;
L D [AR1,P#6.0];
T #ODD.ADDR;
L P##OUT2;
LAR1 ;
L W [AR1,P#4.0];
T #EVEN.DBNO;
L D [AR1,P#6.0];
T #EVEN.ADDR;
NETWORK
TITLE =
L 0;
T #ODD.POSI;
T #EVEN.POSI;
NETWORK
TITLE =
OPN DB [#ALL.DBNO];
L #ALL.ADDR;
LAR1 ;
L #ALL.LENGTH;
ALL: T #ALL.POSI;
L DBW [AR1,P#0.0];
L 2;
MOD ;
L 0;
==I ;
JCN ODD;
L #EVEN.ADDR;
LAR2 ;
L #EVEN.POSI;
SLD 3;
+AR2 ;
OPN DI [#EVEN.DBNO];
L DBW [AR1,P#0.0];
T DIW [AR2,P#0.0];
L #EVEN.POSI;
+ 2;
T #EVEN.POSI;
JU FIN;
ODD: L #ODD.ADDR;
LAR2 ;
L #ODD.POSI;
SLD 3;
+AR2 ;
OPN DI [#ODD.DBNO];
L DBW [AR1,P#0.0];
T DIW [AR2,P#0.0];
L #ODD.POSI;
+ 2;
T #ODD.POSI;
FIN: L #ALL.POSI;
L 1;
==I ;
JC END;
+AR1 P#2.0;
L #ALL.POSI;
LOOP ALL;
END: NOP 0;
END_FUNCTION
请填写推广理由:
分享
只看
楼主