行人匆匆
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 24 個
工控威望: 133 點
下載積分: 1006 分
在線時間: 7(小時)
注冊時間: 2016-11-28
最后登錄: 2021-09-10
查看行人匆匆的 主題 / 回貼
12樓  發(fā)表于: 2017-05-04 07:05
引用
引用第11樓flyfeky于2017-05-02 08:45發(fā)表的  :
我?guī)湍阋幌,可能不是最簡單的?br />
D0為16位寄存器
mov d0 k4y100
v0為變址寄存器
.......

謝謝,思路很好
絕世精靈
略懂、略懂……
級別: 工控俠客
精華主題: 0
發(fā)帖數(shù)量: 363 個
工控威望: 4813 點
下載積分: 1976 分
在線時間: 403(小時)
注冊時間: 2007-09-08
最后登錄: 2024-06-11
查看絕世精靈的 主題 / 回貼
13樓  發(fā)表于: 2017-05-05 11:59
松下有一指令 BCU (DBCU) 判斷16(32)位數(shù)據(jù)中ON的位數(shù),不知道是不是你想要的功能。
360820
我還真沒有個性簽名
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 315 個
工控威望: 496 點
下載積分: 1550 分
在線時間: 1025(小時)
注冊時間: 2009-03-11
最后登錄: 2024-11-23
查看360820的 主題 / 回貼
14樓  發(fā)表于: 2017-05-07 21:40
引用
引用樓主行人匆匆于2017-04-28 09:18發(fā)表的 論壇朋友能幫下嗎 :
我在編程的時候,碰到一個問題,需要判斷一個16位寄存器里面m位,是否有兩個1,想了下不好怎么實現(xiàn),看看論壇朋友有沒有好方法簡單點的謝謝!



有兩個1就大于等于3   比較就行了

只有兩個1就麻煩了點

不知道我是否理解對了
年華猶存
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 44 個
工控威望: 152 點
下載積分: 1432 分
在線時間: 64(小時)
注冊時間: 2017-08-13
最后登錄: 2024-12-21
查看年華猶存的 主題 / 回貼
15樓  發(fā)表于: 2017-08-24 16:37
位尋址啊
多多關(guān)照
他城之途
奮斗
級別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 93 個
工控威望: 702 點
下載積分: 3797 分
在線時間: 216(小時)
注冊時間: 2017-07-13
最后登錄: 2024-10-30
查看他城之途的 主題 / 回貼
16樓  發(fā)表于: 2017-08-24 16:46
引用
引用第10樓john42tw于2017-05-02 07:59發(fā)表的  :
有SUM指令

這個可以
worker02
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 115 個
工控威望: 294 點
下載積分: 723 分
在線時間: 280(小時)
注冊時間: 2008-08-01
最后登錄: 2024-12-07
查看worker02的 主題 / 回貼
17樓  發(fā)表于: 2017-08-30 11:43
FUNCTION FC1200 : VOID
VAR_TEMP
    I,A:INT;

END_VAR
VAR_INPUT
    ByteN:INT;
END_VAR  
VAR_OUTPUT
    B:BOOL;
END_VAR;
I:=0;
A:=0;
FOR I:=0 TO 15 DO
    IF MX[ByteN,I]THEN
        A:=A+1;
   END_IF;
END_FOR;
IF a>=2 THEN
    B:=true;
else
  B:=false;
    END_IF;

END_FUNCTION
[ 此帖被worker02在2017-08-30 13:58重新編輯 ]
jxz123130
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 17 個
工控威望: 144 點
下載積分: 1321 分
在線時間: 7(小時)
注冊時間: 2017-08-25
最后登錄: 2021-12-31
查看jxz123130的 主題 / 回貼
18樓  發(fā)表于: 2017-08-30 13:45
三菱可以直接使用SUM指令。』蛘吣阕约簩懸粋8位的求和子程序,將1的個數(shù)輸出來!16位的的寄存器調(diào)用兩次子程序就好了!