更新时间:2023-02-09 10:06
对字节地址中的位地址进行寻址的寻址方式称为位寻址。
采用位寻址方式的指令,其操作数是8位二进制数中的某一位,在指令中要给出的是内部RAM单元中的某一位,即位地址,其在指令中用bit表示。
8051单片机内部有1个可位寻址区,地址为20H~2FH,共16个单元。其中每个单元中的每一位都可单独作为操作数,共128位。另外,如果SFR(特殊功能寄存器片—内高128单元)的地址值能被8整除,则该SFR也可以进行位寻址。可位寻址的SFR有ACC,B,PSW,P0,P1,P2,P3,IP,IE,TCON,SCON。
由于单片机中只有内部RAM和特殊功能寄存器的部分单元有位地址,因此位寻址只能对有位地址的这两个空间进行寻址操作。位寻由指令给出直接位地址。与直接寻址不同的是,位寻址只给出位地址,而不是字节地址。
指令中直接给出了操作数所在的位地址。
例: CLR P1.0 ;(P1.0) ← 0
SETB ACC.7 ;(ACC.7)← 1
CPL C ;( C )← NOT( C )
在8051单片机中,位地址的表示可以采用以下几种方式:
汇编:
1.直接用位地址00H~FFH来表示,如20H单元的0~7位可表示为0H~7H。
2.采用第n单元第n位的表示方法,如25H.5,表示25H单元的D5 位。
3.对于SFR可直接用寄存器名加位数的方法表示,如ACC.3、PSW.7等。
4.用汇编语言中的伪指令定义。
C:/*以操作P0口第二位为例*/