1、數據寄存器
數據寄存器主要用來保存操作數和運算結果等信息,從而節省讀取操作數所需占用總線和訪問存儲器的時間。
2、變址寄存器
32位CPU有2個32位通用寄存器ESI和EDI。其低16位對應先前CPU中的SI和DI,對低16位數據的存取,不影響高16位的數據。
3、指針寄存器
32位CPU有2個32位通用寄存器EBP和ESP。其低16位對應先前CPU中的SBP和SP,對低16位數據的存取,不影響高16位的數據。
4、段寄存器
段寄存器是根據內存分段的管理模式而設置的。內存單元的物理地址由段寄存器的值和壹個偏移量組合而成的,這樣可用兩個較少位數的值組合成壹個可訪問較大物理空間的內存地址。
5、指令指針寄存器
32位CPU把指令指針擴展到32位,並記作EIP,EIP的低16位與先前CPU中的IP作用相同。 指令指針EIP、IP(Instruction Pointer)是存放下次將要執行的指令在代碼段的偏移量。
擴展資料
寄存器是CPU內部重要的數據存儲資源,用來暫存數據和地址,是匯編程序員能直接使用的硬件資源之壹。由於寄存器的存取速度比內存快,所以,在用匯編語言編寫程序時,要盡可能充分利用寄存器的存儲功能。
寄存器壹般用來保存程序的中間結果,為隨後的指令快速提供操作數,從而避免把中間結果存入內存,再讀取內存的操作。在高級語言(如:C/C++語言)中,也有定義變量為寄存器類型的,這就是提高寄存器利用率的壹種可行的方法。
另外,由於寄存器的個數和容量都有限,不可能把所有中間結果都存儲在寄存器中,所以,要對寄存器進行適當的調度。根據指令的要求,如何安排適當的寄存器,避免操作數過多的傳送操作是壹項細致而又周密的工作。
百度百科-通用寄存器