欢迎来到天天文库
浏览记录
ID:24429611
大小:24.50 KB
页数:3页
时间:2018-11-14
《分析两个stl程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、分析两个stl程序 请参照图片程序,给出详细解释 图片说明: 1,timer&analog 2,analog 最佳答案 network1 set//置位rlo(逻辑运算结果位) =#ok//赋值给ok,ok=true clr//清除rlo an#present//取present变量的状态,并取反,此时rlo的状态和present取反后的状态一致; jcfend//若rlo为true,则跳转到fend处,没猜错的话fend在本fc(或fb)的结尾处; l#ch_1//装载ch_1的值(到accu1) tlw6//传递(accu1的值)到
2、lw6,lw6是本地堆栈区的第3个字,即lb6和lb7两个字节; lb#16#0//装载字节型的16进制常数0; t#byte_00//传递给byte_00 l#paw//装载paw的值; t#paw_addr//传递给paw_addr a#beckhoff//取beckhoff变量的状态,此时rlo的状态和beckhoff变量的状态一致; jcbkf//若rlo的值为true则跳转到bkf处;bkf应是本fc(或fb)的另一个network; network2:writesiemenspr l#paw_addr//装载paw_addr变量的值(到acc
3、u1中); itd//将accu1的值转换成双整数; ll#8//装载长整型实数8(到accu1中,accu1里面的数据被装载到accu2中), *d//将accu2中的数据和accu1中的数据相乘,结果放在accu1中; lar1//将accu1中的内容装载到ar1中(ar1是地址寄存器1),此时ar1的值是paw_addr*8之后的结果,根据这个程序的功能,*8相当于左移3位; llw6//装载本地堆栈区第3个字的内容到accu1,结合前面的赋值,lw6保存了ch_1变量中的值; tpqw[ar1,p#0.0]//将accu1的值传递到pqw(输出过程通
4、道)ar1+p#0.0偏移后的地方,ar1如上所述,+p#0.0是在ar1现有地址内容的基础上加0个字节和0个位,即不偏移,至于为什么这样用后面给你解释; l0//装载常数0; t#error//传递给变量error; set//置位rlo; =#ok//赋值给ok; 这应该是写某一外围设备的程序吧?paw应该是该外围设备的地址。 不知道你什么地方比较难懂,我就根据自己学习过程中比较困难的地方给你说吧。 jc:条件跳转指令,当rlo结果为true(也可以说是为1)时,程序跳转到制定的地方,本程序中是跳转到fend处,从跳转指令到跳转目的地之间的程序在该扫描
5、周期内不再执行。 ar1:地址寄存器ar1,是一个32位的存储空间,它的每几个位的组合是有不同意义的,不想accu1那样代表一些数值,比如说ar1的最后三位代表的是位地址信息,一个字节有8个位,位0-位7,那么用3个二进制位就可以搞定了,000-111。 晕1000字以上了,给你图片吧! 图片说明:1,1
此文档下载收益归作者所有