关于关键字“sbit”定义某些特殊位的问题

2020-01-30 13:58发布

用关键字“sbit”定义某些特殊位时,在对地址分配有三种格式,其中sbit-bit name=sfr-name中为什么要求该值必须在0x80-0xFF之间,并能被8整除?求解,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
xwkm
1楼-- · 2020-01-31 22:16
barryliu 发表于 2013-3-24 14:56
设计技巧,为了使用者容易记忆和换算位地址罢了。后来的一些“增强型”51扩展的SFR不再遵从该“规律”。 ...

无论是否是增强51,setb、clrb能够操作的范围都是基地址的某个位。
只要是51都遵循。否则绝对会乱套。想象一下setb 0x81不是操作P0有多么可怕。
lcb761085384280
2楼-- · 2020-01-31 23:42
xwkm 发表于 2013-3-24 15:51
对,等效的。
不过顺带说下,sbit仅仅是51的数据而已。
感觉keil c的位操作没有sdcc顺眼。 ...

等效的我知道,但总不能混着用吧?
lcb761085384280
3楼-- · 2020-02-01 02:58
 精彩回答 2  元偷偷看……
barryliu
4楼-- · 2020-02-01 03:05
这么设计的目的只是为了在硬件上方便指令的设计,以及方便记忆而已。
xiaobenyi
5楼-- · 2020-02-01 08:19
楼上头像亮了
xwkm
6楼-- · 2020-02-01 10:54
lcb761085384280 发表于 2013-3-24 16:21
另外还想问问,sbit-OV=0xD0^2;书上说,这种表示方法是以一个整常数作为基地址,这里面的整常数是指什么 ...

就是你的地址去掉后面的3位(二进制)。
类似0x82->0x80

一周热门 更多>