编写一个程序将DB_Source.DBD0开始的Num个Dint类型的数,移动至DB_Target,DBD0开始的连续Num
个Dint类型区域内。
L #DB_Source
T #DBNum1
L #DB_Target
T #DBNum2
OPN DB [#DBNum1]
LAR1 P##Source
L B#16#10 // 10H For S7,BYTE0
T LB [AR1,P#0.0]
L B#16#7 // 07H For Dint,BYTE1
T LB [AR1,P#1.0]
L #Num // 需移位数据个数,BYTE 2,3
T LW [AR1,P#2.0]
L #DBNum1 // DB号 ,BYTE4
T LW [AR1,P#4.0]
L P#DBX 0.0 //需移位数据起始地址,BYTE6,7,8,9
T LD [AR1,P#6.0]
L B#16#84 //存储器类型 84H为DB,BYTE6
T LB [AR1,P#6.0]
NOP 0
LAR1 P##Target
L B#16#10
T LB [AR1,P#0.0]
L B#16#7
T LB [AR1,P#1.0]
L #Num
T LW [AR1,P#2.0]
L #DBNum2
T LW [AR1,P#4.0]
L P#DBX 0.0
T LD [AR1,P#6.0]
L B#16#84
T LB [AR1,P#6.0]
NOP 0
CALL "BLKMOV"
SRCBLK :=#Source
RET_VAL:=#ErrState
DSTBLK :=#Target
如果移位的源首地址是变化的如何处理呢,不是从DB[DB_Soure].DBX0.0开始的首地址,如何根据一个变量来修改这个首地址指针??