📅  最后修改于: 2021-01-07 05:49:52             🧑  作者: Mango
特殊功能寄存器(或特殊用途寄存器,或简称为特殊寄存器)是微处理器中用于控制或监视微处理器各种功能的寄存器。由于特殊寄存器与处理器的某些特殊函数或状态紧密相关,因此它们可能无法通过普通指令(如添加,移动等)直接写入。相反,某些处理器体系结构中的某些特殊寄存器需要特殊指令来对其进行修改。
在8051中,寄存器A,B,DPTR和PSW是通常称为SFR(特殊函数寄存器)的一组寄存器的一部分。可以通过名称或地址访问SFR。
下表列出了SFR及其地址。
Byte Address | Bit Address | ||||||||
---|---|---|---|---|---|---|---|---|---|
FF | |||||||||
F0 | F7 | F6 | F5 | F4 | F3 | F2 | F1 | F0 | B |
E0 | E7 | E6 | E5 | E4 | E3 | E2 | E1 | E0 | ACC |
D0 | D7 | D6 | D5 | D4 | D3 | D2 | – | D0 | PSW |
B8 | – | – | – | BC | BB | BA | B9 | B8 | IP |
B0 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | P3 |
A2 | AF | – | – | AC | AB | AA | A9 | A8 | IE |
A0 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | P2 |
99 | Not bit Addressable | SBUF | |||||||
98 | 9F | 9E | 9D | 9C | 9B | 9A | 99 | 98 | SCON |
90 | 97 | 96 | 95 | 94 | 93 | 92 | 91 | 90 | P1 |
8D | Not bit Addressable | TH1 | |||||||
8C | Not bit Addressable | TH0 | |||||||
8B | Not bit Addressable | TL1 | |||||||
8A | Not bit Addressable | TL0 | |||||||
89 | Not bit Addressable | TMOD | |||||||
88 | 8F | 8E | 8D | 8C | 8B | 8A | 89 | 88 | TCON |
87 | Not bit Addressable | PCON | |||||||
83 | Not bit Addressable | DPH | |||||||
82 | Not bit Addressable | DPL | |||||||
81 | Not bit Addressable | SP | |||||||
80 | 87 | 87 | 85 | 84 | 83 | 82 | 81 | 80 | P0 |
请考虑以下有关SFR地址的两点。
特殊函数寄存器的地址可以在80H至FFH之间。这些地址高于80H,因为从00到7FH的地址是8051内部RAM存储器的地址。
并非SFR使用80到FF的所有地址空间。未使用的位置(从80H到FFH)保留,8051编程器不得使用。
CY | PSW.7 | Carry Flag |
AC | PSW.6 | Auxiliary Carry Flag |
F0 | PSW.5 | Flag 0 available to user for general purpose. |
RS1 | PSW.4 | Register Bank selector bit 1 |
RS0 | PSW.3 | Register Bank selector bit 0 |
OV | PSW.2 | Overflow Flag |
– | PSW.1 | User definable FLAG |
P | PSW.0 | Parity FLAG. Set/ cleared by hardware during instruction cycle to indicate even/odd number of 1 bit in accumulator. |
在下面的示例中,SFR寄存器的名称被替换为其地址。
CY | AC | F0 | RS1 | RS0 | OV | – | P |
---|
我们可以使用RS0和RS1位选择相应的寄存器组位。
RS1 | RS2 | Register Bank | Address |
---|---|---|---|
0 | 0 | 0 | 00H-07H |
0 | 1 | 1 | 08H-0FH |
1 | 0 | 2 | 10H-17H |
1 | 1 | 3 | 18H-1FH |
程序状态字(PSW)包含状态位,以反映CPU的当前状态。 8051变体提供了一个具有此状态信息的特殊函数寄存器PSW。 8251提供了两个附加状态标志Z和N,可在名为PSW1的第二个特殊函数寄存器中使用。