求讲STL转成LAD

L     #in_word_1
      L     #in_word_2
      -I    
      ITD   
      DTR   
      L     0.000000e+000
      <R    
      JCN   M01
      L     0.000000e+000
      JU    M03
M01:  NOP   0
      TAK   
      L     2.764800e+004
      >R    
      JCN   M02
      L     2.764800e+004
      JU    M03
M02:  NOP   0
      TAK   
M03:  NOP   0
      L     2.764800e+004
      /R    
      L     #band
      *R    
      T     #out_real

其中#in_word_1,   #in_word_2,#band是输入变量
#out_real是输出变量

最佳答案

L     #in_word_1           // 装载整数#in_word_1
      L     #in_word_2           //装载整数#in_word_2
      -I                                //两整数相减
      ITD                             //将差转换为双整数
      DTR                            //将双整数转换为实数
      L     0.000000e+000
      <R                              //将结果与0比较
      JCN   M01                   //若不小于0, 跳转到M01
      L     0.000000e+000
      JU    M03                     //否则,就跳转到M03
M01:  NOP   0
      TAK                             //因为此时ACCM1中为值为0,ACCM2中才是两数相减的差,
                                           因此将两者的内容相换,即差存放在ACCM1中,
      L     2.764800e+004     //装载27648.0
      >R                              //将差值与27648.0比较,
      JCN   M02                   //若不大于27648.0,跳转到M02
      L     2.764800e+004
      JU    M03                    //否则,就跳转到M03
M02:  NOP   0
      TAK                            //因为此时ACCM1中为值为27648.0,ACCM2中才是两数相减的差,
                                          因此将两者的内容相换,即差存放在ACCM1中
M03:  NOP   0
      L     2.764800e+004    
      /R                               //将两者的差值除以27648.0,
      L     #band                   // 装载实数#band
      *R                              //将商与#band相乘,
      T     #out_real              //将乘积送入#out_real

这段程序的计算结果是:#out_real=( #in_word_1- #in_word_2)/27648.0*#band,
其中( #in_word_1- #in_word_2)/27648.0的取值范围为0.0---1.0.

提问者对于答案的评价:
很详细,谢谢。

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc241680.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午8:11
下一篇 2018年12月1日 下午8:11

相关推荐