Embedded-systems-es-sfr-registers
組み込みシステム-SFRレジスタ
特殊機能レジスタ(または特殊目的レジスタ、または単に特殊レジスタ)は、マイクロプロセッサのさまざまな機能を制御または監視するマイクロプロセッサ内のレジスタです。 特殊レジスタは、プロセッサの特別な機能またはステータスに密接に関連しているため、通常の命令(add、moveなど)で直接書き込みできない場合があります。 代わりに、一部のプロセッサアーキテクチャの一部の特殊レジスタは、それらを変更するための特別な命令を必要とします。
8051では、レジスタA、B、DPTR、およびPSWは、一般にSFR(特殊機能レジスタ)と呼ばれるレジスタグループの一部です。 SFRは、名前またはアドレスでアクセスできます。
次の表に、SFRとそのアドレスのリストを示します。
バイトアドレス
ビットアドレス
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
ビットアドレス指定不可
SBUF
98
9F
9E
9D
9C
9B
9A
99
98
SCON
90
97
96
95
94
93
92
91
90
P1
8D
ビットアドレス指定不可
TH1
8C
ビットアドレス指定不可
TH0
8B
ビットアドレス指定不可
TL1
8A
ビットアドレス指定不可
TL0
89
ビットアドレス指定不可
TMOD
88
8F
8E
8D
8C
8B
8A
89
88
TCON
87
ビットアドレス指定不可
PCON
83
ビットアドレス指定不可
DPH
82
ビットアドレス指定不可
DPL
81
ビットアドレス指定不可
SP
80
87
87
85
84
83
82
81
80
P0
SFRアドレスに関する次の2つの点を考慮してください。
- 特殊機能レジスタは、80HからFFHのアドレスを持つことができます。 00から7FHのアドレスは8051内のRAMメモリのアドレスであるため、これらのアドレスは80Hを超えています。
- 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バリアントは、このステータス情報を備えた1つの特殊機能レジスターPSWを提供します。 8251は、PSW1と呼ばれる2番目の特殊機能レジスターで使用可能な2つの追加のステータスフラグZとNを提供します。