利用冒泡法
西门子300/400程序:
假定十个数据,放在DB1中,安放顺序如下:
DBD0
DBD4
…
DBD36
下面程序:
OPN DB 1 /////打开DB1这个数据块
L 10 ////装载10到MB0中,因为有十个数据,要进行十次排序,9次也可以的
LL0: T MB 0
L P#0.0 ////装载地址指针,这是关键,不要搞错了
LAR1
L 9
LL1: T MB 2 ////内部循环,进行9次,直到把最大值排到最后
L DBD 【AR1,P#0.0】
L DBD 【AR1,P#4.0】
<R
JC LL2 ////比较前后两个值,如果前面大于后面的,则前后数据交换
L DBD 【AR1,P#0.0】
T #m_temp
L DBD 【AR1,P#4.0】
T DBD 【AR1,P#0.0】
L #m_temp
T DBD 【AR1,P#4.0】
LL2: +AR1 P#4.0 ////指针自动进行加4,因为是浮点数,所以要跳过4个字节
L MB 2
LOOP LL1 ///这个指令自动的将A寄存器里的值减1
L MB 0
LOOP LL0