微處理器 微控制器 暫存器這些你分的清楚嗎

2021-09-02 14:54:37 字數 1346 閱讀 9162

嵌入式系統的處理器大多是微控制器(microcontroller),微控制器不同於微處理器(microprocessor),它是指在同一塊晶元內除了**處理單元(cpu)之外還整合了部分記憶體和外設。整合於微控制器內的記憶體和外設我們分別稱之為「片內記憶體」和「片內外設」,否則稱之為「片外記憶體」和「片外外設」。

我們常用的台式電腦和膝上型電腦中的處理器晶元屬於微處理器。微處理器提供高速的匯流排以實現與外部的記憶體和外設進行互動。協調處理器的高速匯流排與速度較之更慢的外設,需要通過晶元組來完成。

嵌入式系統大多使用微控制器,其根本原因是為了節約成本和降低功耗。在實現相同功能的前提下,將大量的晶元整合在一塊晶元內的製造和使用成本,以及功耗都更低。另外,由於微控制器內部整合了大量的外設,使得嵌入式系統的硬體設計得到了極大的簡化。

微控制器和微處理統稱為處理器,這是因為從程式設計的角度來看,微處理和微控制器其實並沒有任何的區別。處理器(這裡指**處理單元,特指cpu)是通過暫存器來執行程式和加工資料的。不同的處理器所包含的暫存器的數量和名稱各不相同,但處理器的暫存器的的功用卻大同小異,暫存器值的變化決定著處理器的行為。

暫存器通常情況下分為兩大類:通用暫存器(general purpose register,gpr)和浮點暫存器(floating point register,fpr)。通用暫存器的作用包括執行指令、進行整型資料和邏輯運算,而浮點暫存器則用於運算具有小數點的資料。

通用暫存器中一定存在程式計數器,簡寫為pc(program counter)。這一暫存器用於告訴處理器下一條指令在位址空間中的位置。注意,這裡的位址空間不只指記憶體空間,還可以包含像快閃儲存器這樣的空間。

程式的執行需要借助於程式計數器來做導航,每次執行一條指令程式計數器中的值就會發生相應的變化,至於變化與程式所執行的指令有關。碰到跳轉指令和呼叫指令時,程式計數器的值就會發生跳變,否則程式計數器的值每次都增加幾個位元組。

在通用的暫存器中還存在棧指標暫存器sp(stack pointer)。棧的作用主要用來儲存現場/上下文、傳遞引數、儲存臨時變數等等。

除了以上兩個暫存器,通用暫存器中還存在一些其他的暫存器,其功能無外乎與變數的處理、引數的傳遞有關。

具有浮點運算的單元的處理器還設計有專門的浮點暫存器,通過這些暫存器可以實現對浮點數的運算和處理。   

暫存器不光只存在於處理器中,許多外設的晶元中也存在暫存器,通過配置這些暫存器就可以實現不同外設的行為和工作方式。此外,這些暫存器在處理器的位址中占有相應的的位置,配置這些暫存器就是根據晶元手冊對暫存器進行相應的讀寫操作。

微控制器暫存器

微控制器暫存器其實就相當於乙個變數,只不過這個變數在固定的位址,有乙個特殊的名稱 當然也不強制 初學者對暫存器的操作比較困難的原因不是組合語言或c語言使用的不熟,而是對暫存器的陌生。微控制器中儲存器的資源是非常寶貴和有限的,所以要盡可能充分的使用這些儲存資源,有多充分呢?就是把每一bit都用上。這就...

ARM微處理器的暫存器結構

arm處理器共有37個暫存器,被分為若干個組 bank 這些暫存器包括 31個通用暫存器,包括程式計數器 pc指標 均為32位的暫存器。6個狀態暫存器,用以標識cpu的工作狀態及程式的執行狀態,均為32位,目前只使用了其中的一部分。同時,arm處理器又有7種不同的處理器模式,在每一種處理器模式下均有...

微處理器內部結構 暫存器

mov指令定址方式 對埠的讀寫 in out 指令 並且指令間接定址是不用中括號 微處理器的內部結構 1.alu 2.暫存器 資料暫存器 位址暫存器 也可暫存資料 3.控制器 取指令 指令暫存器 解碼 4.io控制邏輯 控制器邏輯圖 堆疊 由先進先出形式組織的一段記憶體區域 8086必須按字操作 p...