摘自網(wǎng)絡(luò),具體去處不詳,僅供參考。
用冒泡排序?qū)崿F(xiàn)假定十個(gè)數(shù)據(jù),放在DB1中,安放順序如下:
DBD0
DBD4
…
DBD36
下面是西門子的程序
OPN DB 1 /////打開DB1這個(gè)數(shù)據(jù)塊
L 10 ////裝載10到MB0中,因?yàn)橛惺畟(gè)數(shù)據(jù),要進(jìn)行十次排序,9次也可以的
LL0: T MB 0
L P#0.0 ////裝載地址指針,這是關(guān)鍵,不要搞錯(cuò)了
LAR1
L 9
LL1: T MB 2 ////內(nèi)部循環(huán),進(jìn)行9次,直到把最大值排到最后
L DBD [AR1,P#0.0]
L DBD [AR1,P#4.0]
<R
JC LL2 ////比較前后兩個(gè)值,如果前面大于后面的,則前后數(shù)據(jù)交換
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 ////指針自動(dòng)進(jìn)行加4,因?yàn)槭歉↑c(diǎn)數(shù),所以要跳過(guò)4個(gè)字節(jié)
L MB 2
LOOP LL1 ///這個(gè)指令自動(dòng)的將A寄存器里的值減1
L MB 0
LOOP LL0