发表于:2007/7/6 15:24:00
#0楼
下面是我写的一段程序,功能是输入一个数值,程序在表内寻找与之相对应的数据,找到之后把后面的数据往前移一个字,把找到的这个数据覆盖,表格最后一个覆盖为0,表格范围减一,程序调试的时候字能正确往前移,但就是显示程序出错,我看来看去都找不出错在哪,望高手指教。或有更好方法实现这个功能
//打开数据块,得到表格指针
L P##point_1
LAR1
L W [AR1,P#0.0]
T #block_no
OPN DB [#block_no]
L D [AR1,P#2.0]
LAR1
//得到表格范围数据与第一个数据指针,初始化循环次数
L W [AR1,P#0.0]
T #table
L 0
T #Cyc_find
T #Cyc_move
+AR1 P#2.0
//寻找与输入编号相同的数据
_003: L W [AR1,P#0.0]
L #P_NO
==I
JC _002
+AR1 P#2.0
L #Cyc_find
L 1
+I
T #Cyc_find
JU _003
//得到位移次数
_002: L #table
L #Cyc_find
-I
L 1
-I
//位移循环开始
_001: T #Cyc_move
L W [AR1,P#2.0]
T W [AR1,P#0.0]
+AR1 P#2.0
L #Cyc_move
LOOP _001
//循环结束,表格范围-1
L 0
T W [AR1,P#0.0]
L #table
L 1
-I
T #table
//打开数据块,得到表格指针
L P##point_1
LAR1
L W [AR1,P#0.0]
T #block_no
OPN DB [#block_no]
L D [AR1,P#2.0]
LAR1
//得到表格范围数据与第一个数据指针,初始化循环次数
L W [AR1,P#0.0]
T #table
L 0
T #Cyc_find
T #Cyc_move
+AR1 P#2.0
//寻找与输入编号相同的数据
_003: L W [AR1,P#0.0]
L #P_NO
==I
JC _002
+AR1 P#2.0
L #Cyc_find
L 1
+I
T #Cyc_find
JU _003
//得到位移次数
_002: L #table
L #Cyc_find
-I
L 1
-I
//位移循环开始
_001: T #Cyc_move
L W [AR1,P#2.0]
T W [AR1,P#0.0]
+AR1 P#2.0
L #Cyc_move
LOOP _001
//循环结束,表格范围-1
L 0
T W [AR1,P#0.0]
L #table
L 1
-I
T #table
日本人说中日友好,中国人民笑了:你丫骗谁呢?
日本人说自己爱和平,亚洲人民笑了:说的是人话吗?
日本人说自己要维护世界和平,美国人民笑了:问你大爷没?
日本人说自己是人,全世界的狗都叫了:兄弟,做狗要厚道,不能忘本!
日本人说自己爱和平,亚洲人民笑了:说的是人话吗?
日本人说自己要维护世界和平,美国人民笑了:问你大爷没?
日本人说自己是人,全世界的狗都叫了:兄弟,做狗要厚道,不能忘本!