1. 对于可位寻址的SFR(即地址在0x80~0Xff之间的以0或8结尾的),使用SFR^X(X=0~7)来进行位寻址的原因解释如下:
只是利用C语言中的异或运算符“^”,由于0^X=X,所以恰好地址以0或8结尾的寄存器最后3位为"0",因此和0~7之间的数进行异或自然相当于将其位位置附加到其地址字节中,恰好其位地址保留其字节地址的前5位,于是SFR^X即为位地址转换操作.所以在诸如定义位寄存器的语句(例如:sbit P1_0 P1^0)中广泛应用。知道了其原理同样可以用SFR|X(X=0~7)来替代。