複製鏈接
請複製以下鏈接發送給好友

寄存器組

鎖定
基本介紹
寄存器是CPU內部重要的數據存儲資源,是彙編程序員能直接使用的硬件資源之一。由於寄存器的存取速度比內存快,所以,在用匯編語言編寫程序時,要儘可能充分利用寄存器的存儲功能。
寄存器一般用來保存程序的中間結果,為隨後的指令快速提供操作數,從而避免把中間結果存入內存,再讀取內存的操作。在高級語言(如:C/C++語言)中,也有定義變量寄存器類型的,這就是提高寄存器利用率的一種可行的方法。
另外,由於寄存器的個數和容量都有限,不可能把所有中間結果都存儲在寄存器中,所以,要對寄存器進行適當的調度。根據指令的要求,如何安排適當的寄存器,避免操作數過多的傳送操作是一項細緻而又周密的工作。有關“寄存器的分配策略”在後續課程《編譯原理》中會有詳細的介紹。
中文名
寄存器組
位    置
CPU內部
軟硬件
硬件資源之一
限    制
個數和容量

寄存器組類型分類

由於16位/32位CPU是微機CPU的兩個重要代表,所以,在此只介紹它們內部寄存器的名稱及其主要功能。

寄存器組16位寄存器組

16位CPU所含有的寄存器
4數據寄存器(AX、BX、CX和DX)
2變址指針寄存器(SI和DI) 2個指針寄存器(SP和BP)
4段寄存器(ES、CS、SS和DS)
1個指令指針寄存器(IP)1標誌寄存器(Flags)

寄存器組32位寄存器組

32位CPU除了包含了先前CPU的所有寄存器,並把通用寄存器、指令指針和標誌寄存器16位擴充成32位之外,還增加了216位的段寄存器:FS和GS。
32位CPU所含有的寄存器有
4數據寄存器(EAX、EBX、ECX和EDX)
2個變址和指針寄存器(ESI和EDI) 2個指針寄存器(ESP和EBP)
6段寄存器(ES、CS、SS、DS、FS和GS)
1個指令指針寄存器(EIP) 1標誌寄存器(EFlags)
具有一個輸入端口和兩個輸出端口。