ia-32架構提供16個基本程式執行暫存器,用於一般系統和應用程式程式設計:
這些暫存器可分為如下四類:
通用暫存器主要儲存指令運算過程中的各類資料,包括:
ia-32架構下共包含了8個通用暫存器,依次命名為eax、ebx、ecx、edx、esi、edi、ebp、esp。儘管這些暫存器都可用於通用資料的儲存,但是部分暫存器仍有約定速成的特殊用法:
64位模式下的通用暫存器
64位模式下將32位架構使用通用暫存器全部擴充套件到了64位,同時增加了額外的8個通用暫存器,所有通用暫存器在64位模式下的命名依次為rax、rbx、rcx、rdx、rsi、rdi、rbp、rsp以及r8-r15。
ia-32架構支援的段暫存器包括cs、ss、ds、es、fs、gs。段暫存器用於存放16位長度的段選擇子,以確定特定的段在記憶體中的位址。典型的段包括**段、資料段和堆疊段,分別使用不同的段暫存器:
需要注意的是,應用程式不允許顯式地載入cs暫存器,只能通過特定的指令或內部處理器操作隱式載入,如過程呼叫、任務切換或中斷處理。資料段:ds、es、fs以及gs暫存器分別指向4個資料段。
指令指標(eip)暫存器包含下一條要執行的指令的32位偏移,會根據處理器指令的執行動態變化。eip暫存器不能由軟體直接訪問;它由控制傳輸指令(例如jmp,jcc,call和ret),中斷和異常隱式控制。讀取eip暫存器的唯一方法是執行call指令,然後從過程堆疊中讀取返回指令指標的值。可以通過修改過程堆疊上的返回指令指標的值並執行返回指令(ret或iret)來間接修改eip暫存器。
64位模式下的指令指標暫存器
在64位模式下,rip暫存器成為指令指標暫存器,用於儲存下一條要執行的指令的64位偏移量。此外,64位模式下,支援rip相對定址,即通過向rip暫存器儲存的指令偏移新增偏移來進行定址操作。
標誌暫存器eflags(64位系統下則為rflags暫存器)中的系統標誌和iopl欄位用於控制i/o訪問、可遮蔽硬體中斷、除錯、任務切換以及虛擬-8086模式,只有特權級**才能被允許去修改這些標誌。
intel處理器提供了若干個系統暫存器,並僅允許執行於最高特權級的程式訪問,按照功能可分為記憶體管理暫存器、系控控制暫存器以及除錯暫存器等。
intel處理器提供了4個記憶體管理暫存器,用於指定控制分段記憶體管理的資料結構的位置。
控制暫存器用於控制和確定處理器的操作模式和當前執行任務的特性。在所有32位操作模式和compatibilty模式下,這些暫存器均為32位。在64位模式下,控制暫存器則被擴充套件至64位。
微處理器內部結構 暫存器
mov指令定址方式 對埠的讀寫 in out 指令 並且指令間接定址是不用中括號 微處理器的內部結構 1.alu 2.暫存器 資料暫存器 位址暫存器 也可暫存資料 3.控制器 取指令 指令暫存器 解碼 4.io控制邏輯 控制器邏輯圖 堆疊 由先進先出形式組織的一段記憶體區域 8086必須按字操作 p...
ARM微處理器的暫存器結構
arm處理器共有37個暫存器,被分為若干個組 bank 這些暫存器包括 31個通用暫存器,包括程式計數器 pc指標 均為32位的暫存器。6個狀態暫存器,用以標識cpu的工作狀態及程式的執行狀態,均為32位,目前只使用了其中的一部分。同時,arm處理器又有7種不同的處理器模式,在每一種處理器模式下均有...
Intel處理器系列
intel處理器系列俗稱x86,經歷了乙個長期的 不斷進化的發展過程。1.8086 1978年,29k個電晶體 它是第一代單晶元 16位微處理器之一。2.80286 1982年,134k個電晶體 它增加了更多的定址模式。3.i386 1985年,275k個電晶體 擴充套件到了32位,增加了平坦的定址...