发布于 2012-07-22 15:08:23
21楼
呵呵,hezk兄弟建议不错!代价是多一次循环,但能简洁一些。这也是反复推敲,精益求精的思想,接受建议,我修改一下代码和注释:
//╬╬╬╬╬╬╬╬╬将V区的VB1000起始地址作为指针,并将第一个数存入LW2,LW4╬╬╬╬╬╬╬╬╬╬
LD SM0.0
MOVD &VB1000, AC1 //将V区的起始地址定义为指针,存入累加器1
MOVW *AC1, LW2 //将指针指向的地址(VW1000)里面的内容,存入LW2
MOVW *AC1, LW4 //将指针指向的地址(VW1000)里面的内容,存入LW4
//╬╬╬╬╬╬将后面的数据分别与LW2、LW4进行比较,小的值存入LW2,大的值存入LW4╬╬╬╬╬╬
FOR LW6, +1, 99 //FOR循环体循环比较99次
+D +2, AC1 //将当前的地址指针加2个字节,存入累加器1
MOVW *AC1, AC2 //将当前指向的地址里面的内容存储到累加器2
LDW< AC2, LW2 //当前地址里面的内容与前面一个数进行小于比较
MOVW AC2, LW2 //如果当前值小于LW2里面的内容,将当前值存入LW2
LDW> AC2, LW4 //当前地址里面的内容与前面一个数进行大于比较
MOVW AC2, LW4 //如果当前值大于LW4里面的内容,将当前值存入LW4
NEXT //当循环99次结束,离开循环体,往下执行
//╬╬╬╬╬╬╬╬╬╬╬循环比较结束,最后将最小值存入MW0,将最大值存入MW2╬╬╬╬╬╬╬╬╬╬╬╬
MOVW LW2, MW0 //输出最小值
MOVW LW4, MW2 //输出最大值
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”