特殊功能暫存器

特殊功能暫存器（special function register）簡稱SFR，是单片机裡控制或是監控不同層面功能的寄存器。依不同，特殊功能暫存器可能會包括以下這些

 I/O和週邊控制（例如串列埠或是泛用I/O）
 計時器
 堆疊暫存器
 堆疊上限（以避免堆疊溢位）
 程式計數器
 子程序返回位址
 處理器狀態（是否在處理中斷，運作在保護模式等）
 狀態暫存器（上述比較的結果）

因為SFR和微處理器的狀態或是一些特殊功能緊密相關，有些单片机會規劃無法用一般指令（例如ADD, MOV）直接寫入SFR，而是要用特殊的指令才能修改。例如，程式計數器（PC）就無法直接用指令將特定值寫入，而是用子程序返回、跳躍或是條件分支等指令來改變其值。而狀態暫存器的值也無法直接修改，而是根據程式執行或是比較的狀態來變更其數值。

Intel微控制器
Intel微控制器的SFR在可定址記憶體的較高區塊，位址範圍是0x80至0xFF。此區域的記憶體不能用來儲存程式或是資料，是記憶體對映的埠和暫存器。所有的埠輸入和輸出都可以用SFR區特定記憶體的讀寫來表示。其中也對映了其他的狀態暫存器到SFR區，例如檢查8051狀態的暫存器，或是修改一些運行狀態的暫存器。

有些SFR的位元可以直接用位元定位讀寫的SETB/LDB指令處理。Intel 80196有24個SFR，每個的大小是一個位元組，標準的Intel 8051則有21個SFR。

外部連結
 i8051 SFRs 

 SFRs in C programming for AVR 

Category:微控制器