開始一直搞不懂這兩個指令,搜半天也沒見幾個好理解的,后來自己慢慢搞懂了,今天來個簡單粗暴的
ENCO指令的輸入字是一個16位二進制數,ENCO的功能是將這個二進制數從0位到15位依次檢查每一位的值,一旦遇到某一位的值為“1”,就將該位的位號寫入輸出中。
比如:MW0(包含MB0、MB1),MB0對應位號(15.14.13.12.11.10.9.8),MB1對應位號(7.6.5.4.3.2.1.0)
MW0(0000 0000 1000 1000)即是MB0(0000 0000),MB1(1000 1000)
ENCO MW0(IN) VB0(OUT)就是在MW0中從低位到高位依次檢查每一位的值,第一個“1”出現在3號位中,后面那個7號位的“1”就不會讀了。
所以VB0為(0000 0011)就是把位數3用8421碼存儲到VB0中(備注:存儲到低4位)
DECO就是反過來,比如VB1(0000 1000),讀取的號位就是8,然后放入一個16位單元,如AC0(0000 0001 0000 0000)備注(讀取只有低4位為有效值才有用)
[ 此帖被duanpengchen在2019-03-08 11:25重新編輯 ]