qiushenghua 发表于 2015-8-7 15:38
前面的部分都没理解错,最后一段我没有看懂……
不能直接将(0x10FEu)赋给BCSCTL1这个寄存器,不然会 ...
嗯~最后一段的我的意思就是:不应该将(0x10FEu)这个值,直接赋给了寄存器啦~
但是对于你说的这个,我的猜测是,,编译器起到将地址值转换成内存单元的作用吧。。。
我对照给51编程来看的话,比如:P1 = 0XFF; 这一句,P1在头文件里是这样的 sfr P1 = 0x90;
但是0x90是P1寄存器的地址值,但是0xff却是写入是寄存器的值,而不是修改了P1的地址。
这样的话,就应该是译器起到了,将寄存器地址转换成内存单元的作用,而我们只需关心,前面是寄存器的名字,后面是写入寄存器的值就行了。
所以这样的话,也是编译器将前面的寄存器名字转换成了内存单元,所以才可以修改吧。
不过自己在学校确实也没有学这相关的知识,就只学了些很肤浅的C语言和51基础,底层怎么工作的也不怎么懂,所以这也只是我自己的猜想拉,不知道是不是这样。哎,路漫漫其修远兮哟~~~~