duanpengchen
级别: 探索解密
精华主题: 0
发帖数量: 9 个
工控威望: 106 点
下载积分: 2733 分
在线时间: 10(小时)
注册时间: 2016-12-24
最后登录: 2024-08-27
查看duanpengchen的 主题 / 回贴
楼主  发表于: 2019-03-08 10:50
开始一直搞不懂这两个指令,搜半天也没见几个好理解的,后来自己慢慢搞懂了,今天来个简单粗暴的
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重新编辑 ]
本帖最近评分记录:
  • 下载积分:+1(凌先生) 这个也让我明白这两个用 ..
  • 下载积分:+1(aaa2073) 好贴好贴!
    郭中成
    级别: 正式会员
    精华主题: 0
    发帖数量: 48 个
    工控威望: 91 点
    下载积分: 637 分
    在线时间: 12(小时)
    注册时间: 2019-02-16
    最后登录: 2022-01-18
    查看郭中成的 主题 / 回贴
    1楼  发表于: 2019-03-29 23:10