4個數據寄存器(EAX、EBX、ECX和EDX) 1、數據寄存器 數據寄存器主要用來保存操作數和運算結果等信息,從而節省讀取操作數所需佔用總線和訪問存儲器的時間。 32位CPU有4個32位的通用寄存器EAX、EBX、ECX和EDX。對低16位數據的存取,不會影響高16位的數據。這些 4個16位寄存器又可分割成8個獨立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每個寄 寄存器AX和AL通常稱爲累加器(Accumulator),用累加器進行的操作可能需要更少時間。累加器可用於乘、
2、變址寄存器 32位CPU有2個32位通用寄存器ESI和EDI。其低16位對應先前CPU中的SI和DI,對低16位數據的存取,不影響 寄存器ESI、EDI、SI和DI稱爲變址寄存器(Index Register),它們主要用於存放存儲單元在段內的偏移量, 變址寄存器不可分割成8位寄存器。作爲通用寄存器,也可存儲算術邏輯運算的操作數和運算結果。 它們可作一般的存儲器指針使用。在字符串操作指令的執行過程中,對它們有特定的要求,而且還具有特 3、指針寄存器 32位CPU有2個32位通用寄存器EBP和ESP。其低16位對應先前CPU中的SBP和SP,對低16位數據的存取,不影 寄存器EBP、ESP、BP和SP稱爲指針寄存器(Pointer Register),主要用於存放堆棧內存儲單元的偏移量, 指針寄存器不可分割成8位寄存器。作爲通用寄存器,也可存儲算術邏輯運算的操作數和運算結果。 它們主要用於訪問堆棧內的存儲單元,並且規定: BP爲基指針(Base Pointer)寄存器,用它可直接存取堆棧中的數據; 4、段寄存器 段寄存器是根據內存分段的管理模式而設置的。內存單元的物理地址由段寄存器的值和一個偏移量組合而成 CPU內部的段寄存器: CS——代碼段寄存器(Code Segment Register),其值爲代碼段的段值; 在16位CPU系統中,它只有4個段寄存器,所以,程序在任何時刻至多有4個正在使用的段可直接訪問;在32位 32位CPU有兩個不同的工作方式:實方式和保護方式。在每種方式下,段寄存器的作用是不同的。有關規定簡 實方式: 前4個段寄存器CS、DS、ES和SS與先前CPU中的所對應的段寄存器的含義完全一致,內存單元的邏輯 5、指令指針寄存器 32位CPU把指令指針擴展到32位,並記作EIP,EIP的低16位與先前CPU中的IP作用相同。 指令指針EIP、IP(Instruction Pointer)是存放下次將要執行的指令在代碼段的偏移量。在具有預取指令功 在實方式下,由於每個段的最大範圍爲64K,所以,EIP中的高16位肯定都爲0,此時,相當於只用其低16位 6、標誌寄存器 一、運算結果標誌位 使用該標誌位的情況有:多字(字節)數的加減運算,無符號數的大小比較運算,移位操作,字(字節)之間移位,專門改變CF值的指令等。 2、奇偶標誌PF(Parity Flag) 利用PF可進行奇偶校驗檢查,或產生奇偶校驗位。在數據傳送過程中,爲了提供傳送的可靠性,如果採用奇偶校驗的方法,就可使用該標誌位 。 3、輔助進位標誌AF(Auxiliary Carry Flag) (1)、在字操作時,發生低字節向高字節進位或借位時; 對以上6個運算結果標誌位,在一般編程情況下,標誌位CF、ZF、SF和OF的使用頻率較高,而標誌位PF和AF的使用頻率較低。 4、零標誌ZF(Zero Flag) 5、符號標誌SF(Sign Flag) 的正負號。運算結果爲正數時,SF的值爲0,否則其值爲1。 6、溢出標誌OF(Overflow Flag) 則,OF的值被清爲0。 “溢出”和“進位”是兩個不同含義的概念,不要混淆。如果不太清楚的話,請查閱《計算機組成原理》課程中的有關章節。 二、狀態控制標誌位 1、追蹤標誌TF(Trap Flag) 指令系統中沒有專門的指令來改變標誌位TF的值,但程序員可用其它辦法來改變其值。 2、中斷允許標誌IF(Interrupt-enable Flag) 所發出的中斷請求,以及CPU內部產生的中斷請求。具體規定如下: (1)、當IF=1時,CPU可以響應CPU外部的可屏蔽中斷髮出的中斷請求; (2)、當IF=0時,CPU不響應CPU外部的可屏蔽中斷髮出的中斷請求。 CPU的指令系統中也有專門的指令來改變標誌位IF的值。 3、方向標誌DF(Direction Flag) 系統中,還提供了專門的指令來改變標誌位DF的值。 三、32位標誌寄存器增加的標誌位 IOPL的值,那麼,該I/O指令可執行,否則將發生一個保護異常。 2、嵌套任務標誌NT(Nested Task) (1)、當NT=0,用堆棧中保存的值恢復EFLAGS、CS和EIP,執行常規的中斷返回操作; (2)、當NT=1,通過任務轉換實現中斷返回。 3、重啓動標誌RF(Restart Flag) 當接受到一個非調試故障時,處理機就把它置爲1,中國自學編程網整理髮布!。 4、虛擬8086方式標誌VM(Virtual 8086 Mode) |
CSAPP 關於寄存器的說明
32 位CPU的所有寄存器
2011-11-02 13:59
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.