摘自網絡,具體去處不詳,僅供參考。
用冒泡排序實現假定十個數據,放在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