恭喜,你发布的帖子
发布于 2023-11-09 15:55:52
15楼
想了一个方案,时间仓促、能力有限、纸上谈兵、难免有误。请谅解并指正,仅供参考。
1)总体思路:按字节、字或双字,分段统计;
2)主要关键【指令】:指针(间接寻址)、FOT-NEXT 循环(分为外循环、内循环)、移位指令等;
3)参考例子简述:按字节统计、范围:V0.0至V9.7。范围可扩展。
0、如果按字或双字统计时,要做高低字节交换;程序中的部分常数【8】,要分别改为【16】或【32】;改变FOT-NEXT 内外循环的次数设置;等
1、首先计算:根据VW100、VW102设置的统计区间的最低位、最高位,计算出二者分别对应那个字节的那个位;
2、再计算出 移出统计范围外的位,分别需要移出多少位;
3、建一个指针:初始指向VB0。用于在外循环中读取要统计字节的数据;
4、外循环中、内循环的上部:读取并移除要统计的字节中,处于范围之外的位;这个一两句说不清楚;
5、内循环:统计一个字节里有多少个1;这个是采用站内大侠的方案,可搜索查看。
6、外循环中、内循环的后面:指针加1,指针指向下一个字节的地址,为读取统计下一个字节的数据做准备;
7、外循环结束;
8、统计的【ON数】=0:一个位输出1。如:M0.0;【ON数】>0:一个位输出1。如:M0.1。
请填写推广理由:
分享
只看
楼主