回复:求一个300的标准程序

zzql

  • 帖子

    1909
  • 精华

    1
  • 被关注

    34

论坛等级:奇侠

注册时间:2008-02-10

普通 普通 如何晋级?

发布于 2017-06-17 16:26:40

6楼

展开查看
以下是引用看雪001在2017-06-15 08:57:26的发言 >3楼

有,FC25,MAX

它是比较3个输入值的大小,返回最大值。

自己编一个:

OPN   DB    1                 /////打开DB1这个数据块
      L     10  ////装载10到MB0中,因为有十个数据,要进行十次排序,9次也可以的
LL0:  T     LB    0
      L     P#0.0   ////装载地址指针,这是关键,不要搞错了
      LAR1  
      L     9
LL1:  T     LB    1·   ////内部循环,进行9次,直到把最大值排到最后
      L     DBD [AR1,P#0.0]
      L     DBD [AR1,P#4.0]
            JC    LL2          ////比较前后两个值,如果前面大于后面的,则前后数据交换
      T     DBD [AR1,P#0.0]   //DBD[AR1,P#4.0]  => DBD[AR1,P#0.0] 

      TAK               //POP也可以,DBD[AR1,P#0.0]  => DBD[AR1,P#4.0] 

      T     DBD [AR1,P#4.0]
LL2:  +AR1  P#4.0     ////指针自动进行加4,因为是浮点数,所以要跳过4个字节
      L     LB    1
      LOOP  LL1       ///这个指令自动的将A寄存器里的值减1
      L     LB    0
LOOP  LL0

      以上代码可以将DB1中连续10个浮点数排序,排序后DB1.DBD0为最小值,DB1.DBD36为最大值。

 

谢网友提供的方法,我需从把24个数据中找到最大和最小的值,且知道它们原来所在的位置,不需要按大小重新排列。再次谢谢您。

越学越不会
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54658条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。