特殊機能レジスタ(SFR) は、マイクロコントローラ内のレジスタであり、マイクロコントローラの機能のさまざまな側面を制御または監視します。プロセッサ アーキテクチャに応じて、これには次のものが含まれますが、これらに限定されません。
- I/Oおよび周辺機器制御(シリアルポートや汎用IOなど)
- タイマー
- スタックポインタ
- スタック制限(オーバーフローを防ぐため)
- プログラムカウンタ
- サブルーチン 戻りアドレス
- プロセッサの状態 (割り込み処理中、保護モードで実行中など)
- 条件コード(前回の比較の結果)
特殊レジスタはマイクロコントローラの特別な機能やステータスに密接に結びついているため、通常の命令 (追加、移動など) では直接書き込めない場合があります。代わりに、一部のマイクロコントローラ アーキテクチャの特殊レジスタを変更するには、特別な命令が必要です。たとえば、多くのマイクロコントローラ アーキテクチャでは、プログラム カウンタは直接書き込めません。代わりに、プログラマはサブルーチンからの戻り、ジャンプ、分岐などの命令を使用してプログラム カウンタを変更します。別の例として、条件コード レジスタは直接書き込めない場合があり、代わりに比較命令によってのみ更新されます。
インテルマイクロコントローラ
特殊機能レジスタは、アドレス指定可能なメモリの上位領域、アドレス 0x80 から 0xFF にあります。このメモリ領域は、データやプログラムの保存には使用できませんが、メモリ マップされた一連のポートとレジスタとして使用できます。したがって、すべてのポートの入出力は、SFR 領域内の指定されたアドレスでのメモリ移動操作によって実行できます。また、さまざまなステータス レジスタが SFR にマップされており、8051 のステータスの確認や、8051 の一部の動作パラメータの変更に使用されます。
一部の SFR ビットは、SFR のアドレスで SETB/LDB 命令を使用して直接設定できますが、他のビットは特定の命令の使用が必要になる場合があります。Intel 80196クラスのマイクロコントローラには、それぞれ 1 バイトのサイズの SFR が 24 個あります。標準のIntel 8051チップには、SFR が 21 個あります。
外部リンク
- i8051 SFR
- ウェイバックマシンの特殊機能レジスタ 1/2 (2014-01-29 アーカイブ)
- AVR の C プログラミングにおける SFR
