行人匆匆
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 133 点
下载积分: 1006 分
在线时间: 7(小时)
注册时间: 2016-11-28
最后登录: 2021-09-10
查看行人匆匆的 主题 / 回贴
楼主  发表于: 2017-04-28 09:18
我在编程的时候,碰到一个问题,需要判断一个16位寄存器里面m位,是否有两个1,想了下不好怎么实现,看看论坛朋友有没有好方法简单点的谢谢!
行人匆匆
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 133 点
下载积分: 1006 分
在线时间: 7(小时)
注册时间: 2016-11-28
最后登录: 2021-09-10
查看行人匆匆的 主题 / 回贴
1楼  发表于: 2017-04-29 08:20
引用
引用第4楼tyw123456于2017-04-28 10:19发表的  :
if(a & 0x10)then
        b =true
else
        b =false
end if
.......

谢谢,好像不行吧,没理解透
行人匆匆
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 133 点
下载积分: 1006 分
在线时间: 7(小时)
注册时间: 2016-11-28
最后登录: 2021-09-10
查看行人匆匆的 主题 / 回贴
2楼  发表于: 2017-04-29 08:42
引用
引用第6楼娃娃鱼于2017-04-29 08:29发表的  :
你可以先把寄存器的值赋给K4M0,再来判断M0~M15中的那两位
只要16位中任意两个为1,就检测出来,用最原始的写法当然可以比较繁琐,只是想有没有最简单方法
行人匆匆
级别: 探索解密
精华主题: 0
发帖数量: 24 个
工控威望: 133 点
下载积分: 1006 分
在线时间: 7(小时)
注册时间: 2016-11-28
最后登录: 2021-09-10
查看行人匆匆的 主题 / 回贴
3楼  发表于: 2017-05-04 07:05
引用
引用第11楼flyfeky于2017-05-02 08:45发表的  :
我帮你一下,可能不是最简单的。

D0为16位寄存器
mov d0 k4y100
v0为变址寄存器
.......

谢谢,思路很好