发布于 2011-10-10 09:42:35
3楼
访问的DB块的确没有DBW1990,最大地址为DBX1498.5
但是我寻址的时候写了保护啊
我的做法是读取这个DB块的长度,然后转成指针,当AR1大于等于此指针的时候,跳转到程序的最后
这样有问题吗?怎么会寻址到DBW1990呢?奇怪啊。
我的程序贴在下面:
L L#0
T #DB_Limit
L #NextPosNo
L 0
<=I
JC y009
OPN DB1003
L 0
T #No_1
L DBLG
SLD 3
L DW#16#84000000
+D
T #DB_Limit
y001: L #No_1
L 10
*I
SLD 3
L DW#16#84000000
+D
LAR1
TAR1
L #DB_Limit
>=D
JC y009
L DBW [AR1,P#0.0]
L #NextPosNo
==I
JC y002
L #No_1
INC 1
T #No_1
JU y001
y002: A DBX [AR1,P#8.3]
= #NextPos_RdyWrite
O DBX [AR1,P#8.1] //FnhWrite_X
O DBX [AR1,P#8.5] //FnhWrite_Y
= #NextPos_FnhWrite
y009: NOP 0
L #LastPosNo
L 0
<=I
JC y019
L 0
T #No_2
y011: L #No_2
L 10
*I
SLD 3
L DW#16#84000000
+D
LAR1
TAR1
L #DB_Limit
>=D
JC y019
L DBW [AR1,P#0.0]
L #LastPosNo
==I
JC y012
L #No_2
INC 1
T #No_2
JU y011
y012: L DBD [AR1,P#2.0]
L L#0
<>D
= #LastPos_Tskin
y019: NOP 0
这是咋回事呢?