发布于 2013-08-24 13:44:06
8楼
今天刚好闲暇无事,给楼主写了一段“下沉法“排序代码,这100个浮点数连续存放在DB100里面,可参考如下:
OPN DB 100 //打开当前的数据块
L 99 //外循环次数100-1=99(数据个数减一)
NXT2: T LW 20
LAR1 P#0.0 //内外循环从数据起始地址开始寻址
NXT1: T LW 22 //内循环次数
L DBD [AR1,P#0.0]
L DBD [AR1,P#4.0] //装载两个相邻的数据进行比较
<R //将小于改为大于数据从大到小排序!!!
JC M001 //如果前面的数小于后面的数跳转到M001标签,数据保存原样
T DBD [AR1,P#0.0]
POP
T DBD [AR1,P#4.0] //如果前面的数不小于后面的数两个数据交换位置
M001: +AR1 P#4.0 //内循环地址向前递增一个双字
L LW 22 //装载当前内循环次数
LOOP NXT1 //内循环次数减一,跳转到NXT1标签,直到减至0离开内循环往下执行
L LW 20 //装载当前外循环次数
LOOP NXT2 //外循环次数减一,跳转到NXT2标签,直到减至0离开外循环往下执行
代码测试过了,注意:将代码中的中文小于号修改成英文字符就好了。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”