前些日子看了论坛一篇帖子关于统计M区为1的个数的问题,那个帖子是用字逻辑每个位相与,如果等于1就自加1。看了廖老师提示思路可以用循环做,于是试想用循环做一个FB块。现已测试通过。程序如下
接口介绍, in:#pointer1 类型 pointer //(输入需要统计的起始地址pointer类型)
in:# len 类型 int (设置需要统计的长度如16表示统计1字,32 表示统计双字)
stat: #temp1 类型 int
stat: # temp2 类型 int
out :out 类型 int (输出统计结果int类型)
。。。。。。。。。。。。。。。。。。。。
L P##pointer1 // 定义指针
LAR1
L D [AR1,P#2.0] //取指针值
LAR1
TAR1
T MD 100 //指针中间变量
L 0
T #temp1 // 初始化累加
T #temp2 // 初始化循环
m002: A M [MD 100]
JCN m001
L #temp1
L 1
+I
T #temp1
T #out
m001: L #temp1
T #out
L MD 100
L P#0.1 //指针循环加1
+I
T MD 100
L #temp2
L 1
+I
T #temp2
L #temp2
L #LEN
JC m002
SET
SAVE
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
运行结果如图:
