过了好多天了,我自己来了结这个问题吧。
从keil c51中关于.cx51的语法介绍说明可知。
在cx51中这事是没戏的。
最后说一下,我为什么要特别折腾这个事情。
其实这源自于 51以后,几乎所有单片机都不具备位寻址功能,而就是51,也只有一部分空间可以位寻址。
而对于寄存器这种频繁需要一个位,几个位的功能定义,置1和清0这个操作很麻烦,简单说,你不可能一步到位完成操作。
比方说,有一个两个位的定义,假使要你设置成10或者01它就必然需要两步操作……具体这里不多说了,回头我会写一个很完整的文章介绍,可能会放在我个人的公众号uCer里。
这里不多说。
而我之所以希望可以有非sfr这种特殊关键字的方式去访问寄存器,目的是为了可以用位段这个原始的原生的c语法来模拟这种位操作。
这个时候我的这种模拟不是为了性能,更多是为了方便代码编写。当然,我还会考虑一种问题,就是它在汇编层面带来的可能的隐藏的问题。
还好,非51的,包括stm8这种,都可以用位段,具体的等我的文章吧。敬请关注uCer,及时得到推送。
展开