當前位置:
首頁 > 最新 > 寄存器在CPU中是怎麼工作的呢?

寄存器在CPU中是怎麼工作的呢?

要回答這個問題呢,需要先說明一下CPU是什麼?CPU又稱為處理器,由運算器、控制器、寄存器、輸入設備和輸出設備組成,這些器件由處理數據匯流排相連。

它們在處理器中,分工明確:

運算器:進行數據的處理。

寄存器:進行數據的存儲。

控制器:控制各種器件工作。

輸入設備:將人們熟悉的信息形式轉化為機器能識別的信息形式,如鍵盤、滑鼠等。

輸出設備:將計算機運算的結果轉化為人們熟悉的信息形式,如顯示器、印表機等。

處理數據匯流排:連接各種器件,使各個器件進行數據的傳送。

接下就簡單介紹寄存器在處理器中是怎麼工作的?

圖2-2-1

通過圖2-2-1我們來簡單了解,處理器的底部和四周有大量的引腳,可以接受外界發來傳送的電信號。每個引腳都有自己的用處。有些引腳用來將參與運算的數字輸送到處理器內部,有些引腳可以重複使用的。

假如要進行加法運算,這些引腳將依次把加數和被加數送入處理器,處理器一旦接受信號,將會以二進位數組成的電信號反應在引腳相連的內部線路上,是一組高低電平的組合,代表著二進位數的每一位,此時必須用寄存器(Register)(是雙向器件)的暫時存儲,之所以這樣做,是因為相同的引腳和線路馬上要輸入被加數,重複之 圖2-2-1

前的工作,也正因為這個原因,這些內部線路稱為處理數據匯流排。它們之間通過控制器(圖中沒有畫)發出指令,控制各個器件在某個正確的時間做某個動作。

圖2-2-1寄存器(Register A)和寄存器(Register B)將分別參與運算,假設寄存器(Register A)暫時存儲的是加數,寄存器(Register B)暫時存儲的是被加數。此時寄存器(Register A)和寄存器(Register B)都暫時存儲了數據,將不再受外部數據的影響。運算邏輯部件輸出結果,結果被輸送到寄存器(Register C),通過數據匯流排輸送到處理器外面,或再次送入到寄存器(Register A)和寄存器(Register B)參與運算。

【處理器中有多少寄存器】

不同的處理器,寄存器的個數、結構是不同的。【簡單介紹寄存器,詳細內容請參考Intel白皮書】

16位處理器有14個寄存器,每個寄存器有各自的名字。

14個寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。

32位處理器有16個寄存器,每個寄存器有各自的名字。

16個寄存器:EAX、EBX、ECX、EDX、ESI、EDI、ESP、EBP、ES、CS、SS、DS、FS、GS、EIP、EFLAGS。

64位處理器有16個寄存器,每個寄存器有各自的名字。

16個寄存器:RAX、RBX、RCX、RDX、RSI、RDI、RBP、RSP、CS、DS、ES、SS、FS、GS、RIP、RFLAGS。

我們不對這些寄存器進行一次性的介紹,在下面的章節中,需要用到32位處理器的通用寄存器。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 編程達人 的精彩文章:

TAG:編程達人 |