发布于 2012-07-21 11:23:49
19楼
是哦,说了一大堆理论,确实需要动手写一写了。版主也这样建议了,响应版主的号召,今天刚好闲暇无事,等于锻炼一下,写了点东西;在224里面测试了功能正常,刚好也能给楼主提供点参考。
求最大最小值的环境:从VW1000开始,连续存储了100个整数,找其中最大最小值。
见下面参考代码:
//╬╬╬╬╬将V区的VB1000起始地址作为指针,并将第一个数第二个数存入AC2,AC3╬╬╬╬
LD SM0.0
MOVD &VB1000, AC1 //将V区的起始地址定义为指针,存入累加器1
MOVW *AC1, AC2 //将指针指向的地址(VW1000)里面的内容,存入累加器2
+D +2, AC1 //将当前的地址指针加2个字节,存入累加器1
MOVW *AC1, AC3 //将当前指针指向的地址(VW1002)里面的内容,存入累加器3
//╬╬╬╬╬╬╬第一个数第二个数进行比较,小的值存入LW2,大的值存入LW4╬╬╬╬╬╬╬╬
LDW< AC2, AC3 //进行整数的小于比较
= L0.0
LD L0.0 //如果VW1000小于VW1002
MOVW AC2, LW2 //将小的值暂存入lw2
MOVW AC3, LW4 //将大的值暂存入lw4
LDN L0.0 //如果VW1000不小于VW1002
MOVW AC2, LW4 //将大的值暂存入lw4
MOVW AC3, LW2 //将小的值暂存入lw2
//╬╬╬╬将后面的数据分别与LW2、LW4进行比较,小的值存入LW2,大的值存入LW4╬╬╬╬
LD SM0.0
FOR LW6, +1, 98 //FOR循环体循环比较98次
+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
//╬╬╬╬╬╬╬╬╬╬循环比较结束,最后将最小值存入MW0,将最大值存入MW2╬╬╬╬╬╬╬╬╬╬
MOVW LW2, MW0 //输出最小值
MOVW LW4, MW2 //输出最大值
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”