发布于 2014-08-04 21:06:40
4楼
前辈我问个问题,如果对一个db区内的10个数据排序为什么要内部循环9次外部却要10次呢
L #DB_NO
T %LW6
OPN DB [ %LW6] //打开数据块
L #LEN ////装载10到LW2中,因为有十个数据,要进行十次排序,9次也可以的
LL0: T %LW2
L P#0.0 ////装载地址指针
LAR1
L #LEN
+ -1
LL1: T %LW4 ////内部循环,进行9次,直到把最大值排到最后
L DBW [ AR1 , P#0.0 ]
L DBW [ AR1 , P#2.0 ]
JC LL2 ////比较前后两个值,如果前面大于后面的,则前后数据交换
L DBW [ AR1 , P#0.0 ]
T #m_temp
L DBW [ AR1 , P#2.0 ]
T DBW [ AR1 , P#0.0 ]
L #m_temp
T DBW [ AR1 , P#2.0 ]
LL2: +AR1 P#2.0 ////指针自动进行加2
L %LW4
LOOP LL1 ///这个指令自动的将A寄存器里的值减1
L %LW2
LOOP LL0
SET
SAVE
CLR