ge4856254
级别: 探索解密
精华主题: 0
发帖数量: 54 个
工控威望: 153 点
下载积分: 1414 分
在线时间: 60(小时)
注册时间: 2016-10-18
最后登录: 2018-06-07
查看ge4856254的 主题 / 回贴
楼主  发表于: 2017-05-15 09:19
在看编程手册时看到ENCO编码这个指令,可是看了半天,没能理解手册上意思,有点晕乎乎的,哪位大神可以通俗的讲解一下!
ge4856254
级别: 探索解密
精华主题: 0
发帖数量: 54 个
工控威望: 153 点
下载积分: 1414 分
在线时间: 60(小时)
注册时间: 2016-10-18
最后登录: 2018-06-07
查看ge4856254的 主题 / 回贴
1楼  发表于: 2017-05-16 16:35
谢谢啦,看的有点懂了!
引用
引用第1楼ko2016于2017-05-16 13:13发表的  :
ENCO是编码指令,具体形式为ENCO  (S)   (D)  N该指令执行时,将(S)中的低2^N位进行编码,编码的结果保存到(D)的低N位中,未被编码结果占用的高位全部清零。编码的2^N位数中,若最高位的1在第M位,则编码的结果为M。编码的2^N位数中只有最高位的1有效,其余的1均被忽略。若(S)为位元件,则对(S)开始的连续2^N位进行编码。像你举得这个例子,具体运行起来是这样的:如果S和D0的取值如下S008  S007    S006   S005    S004   S003   S002  S001   0        1           0         1          0         0          0        1D000(16位)1110000101101110则该指令执行后的结果为S008  S007    S006   S005    S004   S003   S002  S001   0        1           0         1          0         0          0        1D000变为:0000000000000111(编码结果为7,因为(S)中的最高位1是S007)