赋值的意思

[复制链接]
888|13
 楼主| zhanglli 发表于 2017-5-12 21:48 | 显示全部楼层 |阅读模式

*W=*W&0x0404;
什么意思啊
 楼主| zhanglli 发表于 2017-5-12 21:53 | 显示全部楼层
W代表某寄存器。
wangzsa 发表于 2017-5-12 21:55 | 显示全部楼层
寄存器不是可以直接赋值的吗?
 楼主| zhanglli 发表于 2017-5-12 21:57 | 显示全部楼层

是啊,为什么我看到一些程序的初始化里面有类似这种语句?
lium 发表于 2017-5-12 21:59 | 显示全部楼层

按位与,按位或操作不是和寄存器原来的值有关吗。。。
 楼主| zhanglli 发表于 2017-5-12 22:01 | 显示全部楼层

是啊,运算之后寄存器的值不是不确定了吗,怎么能算初始化呢?
guoyt 发表于 2017-5-12 22:02 | 显示全部楼层

LZ哪里看错了吧?
51的寄存器只能直接寻址,间接寻址只能访问到RAM!
 楼主| zhanglli 发表于 2017-5-12 22:06 | 显示全部楼层

我也不明白,猜想大概是想保留某些位吧
guoyt 发表于 2017-5-12 22:10 | 显示全部楼层

有些寄存器,写0不影响,写1是清0
yufe 发表于 2017-5-12 22:11 | 显示全部楼层

我觉得应该在初始化的时候不止做了这些,你看看他的头文件是不是对他赋了值
llia 发表于 2017-5-12 22:14 | 显示全部楼层

这是从程序兼容性考虑,若其他地方改了寄存器(典型是volatile)的值,此处又改会有冲突
wangpe 发表于 2017-5-12 22:16 | 显示全部楼层

所以清零用与,置位用或
 楼主| zhanglli 发表于 2017-5-12 22:22 | 显示全部楼层
搞定了,呵呵,犯了低级错误……结贴啦,多谢各位
kk5004 发表于 2017-5-15 10:15 | 显示全部楼层
你好,我這邊是 希特電子(深圳)有限公司, 是中國大陸笙泉MCU的代理商  有需要解決的技術問題可以 加我 QQ 328626444 詳細聊聊,   潘,R
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1016

主题

9386

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部