slik
级别: 论坛先锋
精华主题: 0
发帖数量: 897 个
工控威望: 1160 点
下载积分: 5832 分
在线时间: 533(小时)
注册时间: 2008-06-01
最后登录: 2024-05-22
查看slik的 主题 / 回贴
楼主  发表于: 2008-09-22 21:22

有哪位高手帮我理解一下这段程序怎么用一个时间比较然后就。。。。。。那么期间的D15,D16是什么呢?从哪里来的呢,为什么要进行时间的比较?
spc_cll
级别: 略有小成
精华主题: 0
发帖数量: 103 个
工控威望: 323 点
下载积分: 923 分
在线时间: 32(小时)
注册时间: 2007-08-08
最后登录: 2020-09-10
查看spc_cll的 主题 / 回贴
1楼  发表于: 2008-10-12 09:12
d14,d15,d16存储年,月,日的数据即过期日期
55行: 用D40处存储的年月日日期改写系统日期
59行:  TRD D0 将系统当前日期读到D0处,这时:D0.D1,D2分别存储当前日期的年,月,日
      CMP D0,D14,S40:比较系统当前日期.年D0与存储的年D14比较,比较结果:
                                          若D0>D14则S40=On
                                              D0=D14则S41=On
                                              D0<D14则S42=On
70行:若S40=On(当前年>过期日期的年) 则设置过期标志S48=On
          若S41=On(当前年=过期日期的年),而D1>D15(当前月>过期日期的月)则设置过期标志S48=On
          若S42=On(当前年=过期日期的年),而D1=D15(当前月=过期日期的月),D2>=D16(当前日>=过期日期的日)则设置过期标志S48=On