15250554801
级别: 探索解密
精华主题: 0
发帖数量: 48 个
工控威望: 143 点
下载积分: 915 分
在线时间: 38(小时)
注册时间: 2018-11-29
最后登录: 2022-03-23
查看15250554801的 主题 / 回贴
楼主  发表于: 2018-12-06 14:48
如果一个寄存器中放满了16位数,想提取其中几位数来比较,可以实现这种功能吗
changzyu9638
级别: 论坛先锋
精华主题: 0
发帖数量: 139 个
工控威望: 1030 点
下载积分: 1165 分
在线时间: 170(小时)
注册时间: 2018-09-19
最后登录: 2020-08-07
查看changzyu9638的 主题 / 回贴
1楼  发表于: 2018-12-06 15:01
D100.0 ~ D100.F
如圖

15250554801
级别: 探索解密
精华主题: 0
发帖数量: 48 个
工控威望: 143 点
下载积分: 915 分
在线时间: 38(小时)
注册时间: 2018-11-29
最后登录: 2022-03-23
查看15250554801的 主题 / 回贴
2楼  发表于: 2018-12-06 15:23
还有一个问题  把两个寄存器组合起来32位     比如                 DMOV K500000  D0                          应该是把500000放在D0和D1的组合里
但是软件上监测的时候还是显示 D0里的值是 500000       D1里的值是0
    
黄xiaoming
学工控
级别: 略有小成
精华主题: 0
发帖数量: 132 个
工控威望: 245 点
下载积分: 2781 分
在线时间: 85(小时)
注册时间: 2010-09-11
最后登录: 2024-08-03
查看黄xiaoming的 主题 / 回贴
3楼  发表于: 2018-12-06 15:34
32位显示的时候是D1D0,D0的最高位就不在是符号位了,此时D0可以存储的数据最大是65535 所以小于这个数据的时候D1里面都是0 ,至于你输入500000,D1里面应该会显示数据的,你再试一次。
15250554801
级别: 探索解密
精华主题: 0
发帖数量: 48 个
工控威望: 143 点
下载积分: 915 分
在线时间: 38(小时)
注册时间: 2018-11-29
最后登录: 2022-03-23
查看15250554801的 主题 / 回贴
4楼  发表于: 2018-12-06 15:38
又试了一下 D0里是500000   D1是7
15250554801
级别: 探索解密
精华主题: 0
发帖数量: 48 个
工控威望: 143 点
下载积分: 915 分
在线时间: 38(小时)
注册时间: 2018-11-29
最后登录: 2022-03-23
查看15250554801的 主题 / 回贴
5楼  发表于: 2018-12-06 15:40
还有1L这个 该怎么用啊。。
工控最强王者
世上无难事,只怕有心人
级别: 略有小成
精华主题: 1 篇
发帖数量: 91 个
工控威望: 232 点
下载积分: 2123 分
在线时间: 85(小时)
注册时间: 2018-10-26
最后登录: 2024-05-16
查看工控最强王者的 主题 / 回贴
6楼  发表于: 2018-12-06 15:42
如果想比较不连续位的,如D0D1组成的32位数据,可以用DMOV D0 K8M0,此时32位的数转成二进制对应从M0到M31,想哪个比较就取哪个比较,
如果想比较连续位的,用字位移
15250554801
级别: 探索解密
精华主题: 0
发帖数量: 48 个
工控威望: 143 点
下载积分: 915 分
在线时间: 38(小时)
注册时间: 2018-11-29
最后登录: 2022-03-23
查看15250554801的 主题 / 回贴
7楼  发表于: 2018-12-06 15:44
谢谢大哥