特殊功能寄存器(或特殊用途寄存器,或簡單的特殊寄存器)是微處理器內控制或監視微處理器各種功能的寄存器。由於特殊寄存器與處理器的某些特殊功能或狀態密切相關,因此它們可能無法由普通指令(如add、move等)直接寫入。相反,某些處理器體系結構中的某些特殊寄存器需要特殊指令來修改它們。
在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存儲器的地址。
不是所有80到FF的地址空間都由SFR使用。未使用的位置(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的特殊函數寄存器中可用。