汇编代码中的加号什么意思啊

2019-03-24 15:31发布

小弟刚学430,看汇编代码时总看到语句里面有加号即“+”。比如“mov.w    #WDTPW+WDTHOLD,&WDCTL"这个加号什么意思呢。在此先谢谢啦
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
wangfuchong
1楼-- · 2019-03-24 18:11
#define WDTPW                  (0x5A00)
#define WDTHOLD                (0x0080)

这是C头文件中的定义
汇编中一样道理

您看看器件手册,WDTHOLD是看门狗控制寄存器WDTCTL 的最高一位也就是WDTCTL .7,不就等于0x80么?msp430系列的控制标志位都是这么宏定义的,所以您要设置一个寄存器的某些位置1,只要把这些位的宏定义相加就可以了。
我很长时间未用单片机了,只不过近一年来试用过富士通的单片机,好像msp的定义方法和一些单片机不一样,不过这只是些约定罢了,看习惯和编写程序的效率罢了。
说的不一定对,应该是这么回事

[ 本帖最后由 wangfuchong 于 2011-10-19 23:31 编辑 ]
David_Lee
2楼-- · 2019-03-24 19:59
 精彩回答 2  元偷偷看……
wangfuchong
3楼-- · 2019-03-24 20:42

原帖由 wangfuchong 于 2011-10-19 23:30 发表 #define WDTPW (0x5A00) #define WDTHOLD (0x0080) 这是C头文件中的定义 汇编中一样道理 您看看器件手册,WDTHOLD是看门狗控制寄存器WDTCTL 的最高一位也就是WDTCTL .7,不 ...


有个重要的地方说的不准确,写得匆忙,应该是:


  寄存器WDTCTL的低8位的最高一位也就是WDTCTL .7  



苍穹的眼泪
4楼-- · 2019-03-24 23:02
谢谢
zhuoyue
5楼-- · 2019-03-25 02:57
 精彩回答 2  元偷偷看……
苍穹的眼泪
6楼-- · 2019-03-25 03:49
在MSP430F413中,WDTCTL的地址是0x0120H。可否这样理解加号。如果想要WDTCTL寄存器中的某些位置1,只要把需要置1的那些位用加号连接起来。加号在这里只相当于集中某些元素一起操作的作用。比如下面的代码:
MOV   #WDTPW + WDTTMSEL,&WDTCTL;
MOV  #WDTPW + WDTTMSEL + WDTCNTCL,&WDTCTL;
第一句就是说将WDTPW 和WDTTMSEL两个值分别赋给WDTCTL所对应的位;第二句同理相当于把DTPW ,WDTTMSEL , WDTCNTCL这三个值赋给WDTCTL所对应的位。

一周热门 更多>

相关问题

    相关文章