大家好,今天碰了个问题,程序如下,麻烦大家耐心点,问题在后面
第一段
A(
A(
L #ADD_START /装载初始化范围值
L #OMS_PCODE_MAX /装载初始化范围值最大值
>=I
)
JNB _001
L 0 /装载初始化起始值
T #ADD_START
SET
SAVE
CLR
_001: A BR
)
JNB _002
L 0
T DB100.DBW0 /给初始化条件置0(完成初始化)
_002: NOP 0
第二段
L DB100.DBW0 /初始化条件(由第三方提供)
L 1
==I
= #HAND_SHAK_OK /初始化条件
第三段
A #HAND_SHAK_OK
FP M 114.0
= L 0.0
A(
A L 0.0
JNB _003
L 2
T #INIT_LIST
SET
SAVE
CLR
_003: A BR
)
JNB _004
L 0
T #ADD_START /给初始化范围赋值0
_004: NOP 0
第四段
L #ADD_START /间接寻址,每100个字节为1个区
L 800
*I
LAR1
第五段
L #ADD_START /间接寻址,每2个字节为1个区
L 16
*I
LAR2
第六段
OPN DB100 /打开DB块100
OPN DI101 /打开DB块101
A(
A #HAND_SHAK_OK
A(
L DIW [AR1,P#98.0] /DB101中间接寻址的第98个字节
L 0
>I
)
JNB _010
L #INIT_LIST /初始化后传送的值(2开始)
T DIW [AR1,P#98.0]
SET
SAVE
CLR
_010: A BR
)
JNB _011
L #INIT_LIST /初始后值增加1,准备送给后一个条件成立的DB字
L 1
+I
T #INIT_LIST
_011: NOP 0
第七段
L DIW [AR1,P#1698.0]
T DBW [AR2,P#1200.0]
第八段
A #HAND_SHAK_OK
JNB _00d
L #ADD_START
L 1
+I
T #ADD_START /寻址指针加1
_00d: NOP 0
目前的问题是这样的:
1、ADD_START,不加数(HAND_SHAK_OK条件成立)
2、我去掉HAND_SHAK_OK条件,可以开始加1
3、我的DIW98、DIW198、DIW298、DIW398、DIW498……都是大于1,但INIT_LIST不加数
请教各位,这是什么原因