各位大神,帮我解读一下下面的代码,先谢谢了。
L P##IN0
LAR1
L 0
L W[AR1,P#0.0]
==I
JZ M001
T #TEMP2 #TEMP2
OPN DB[#TEMP2] #TEMP2
M001: NOP 0
L D[AR1,P#2.0]
LAR1
AD DW#16#6000000
JZ M002
L 0
L #IN1 #IN1
==I
JZ M003
SET
NOP 0
M004: T #TEMP3 #TEMP3
MCRA
R [AR1,P#0.0]
MCRD
+AR1 P#0.1
L #TEMP3 #TEMP3
LOOP M004
M003: SET
JU M005
M002: CLR
M005: SAVE
看着头疼,云里雾里的。
这段代码应该是某个功能块里的程序,都是临时变量
L P##IN0 //取#IN0变量的起始地址
LAR1 //将#IN0变量的地址放入AR1地址寄存器中
L 0
L W[AR1,P#0.0]
==I //判断#IN0变量中LW0字节中内容是否等于0
JZ M001 //如果是跳转 程序段M001,如果不是0,继续执行以下程序
T #TEMP2 #TEMP2 //这段应该丢失了一段程序,L W[AR1,P#0.0],将变量 //#in0 中LW0的内容赋值给#temp,比如100;
OPN DB[#TEMP2] #TEMP2 //打开DB100(100这个数是上面#in0决定的,用100 //代替)
M001: NOP 0
L D[AR1,P#2.0] //以后有时间继续翻译
LAR1
AD DW#16#6000000
JZ M002
L 0
L #IN1 #IN1
==I
JZ M003
SET
NOP 0
M004: T #TEMP3 #TEMP3
MCRA
R [AR1,P#0.0]
MCRD
+AR1 P#0.1
L #TEMP3 #TEMP3
LOOP M004
M003: SET
JU M005
M002: CLR
M005: SAVE