組み込みシステム-SFRレジスタ
特殊機能レジスタ(または特殊目的レジスタ、または単に特殊レジスタ)は、マイクロプロセッサのさまざまな機能を制御または監視するマイクロプロセッサ内のレジスタです。特殊レジスタは、プロセッサの特殊な機能やステータスと密接に関連しているため、通常の命令(追加、移動など)では直接書き込みできない場合があります。代わりに、一部のプロセッサアーキテクチャの一部の特殊レジスタは、それらを変更するために特別な命令を必要とします。
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 | - | - | - | 紀元前 | BB | BA | B9 | B8 | IP |
B0 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | P3 |
A2 | AF | - | - | 交流 | 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 | キャリーフラグ |
交流 | PSW.6 | 補助キャリーフラグ |
F0 | PSW.5 | ユーザーが汎用で使用できるフラグ0。 |
RS1 | PSW.4 | レジスタバンクセレクタビット1 |
RS0 | PSW.3 | レジスタバンクセレクタビット0 |
OV | PSW.2 | オーバーフローフラグ |
- | PSW.1 | ユーザー定義可能なフラグ |
P | PSW.0 | パリティフラグ。アキュムレータの1ビットの偶数/奇数を示すために、命令サイクル中にハードウェアによってセット/クリアされます。 |
次の例では、SFRレジスタの名前がそれらのアドレスに置き換えられています。
CY | 交流 | F0 | RS1 | RS0 | OV | - | P |
---|
RS0およびRS1ビットを使用して、対応するレジスタバンクビットを選択できます。
RS1 | RS2 | レジスターバンク | 住所 |
---|---|---|---|
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は、2つの追加のステータスフラグZとNを提供します。これらは、PSW1と呼ばれる2番目の特殊機能レジスタで使用できます。