暫存器講解 彙編(32位處理器)

2021-08-13 12:19:32 字數 3130 閱讀 8343

32位處理器  暫存器分為四類:

上面的八個通用暫存器 e 是 extended 縮寫

當然,以上功能並未限制暫存器的使用,特殊情況為了效率也可作其他用途。很明顯ax,bx,cx,dx也可以作為通用資料暫存器使用。

這八個暫存器低16位分別有乙個引用別名 ax, bx, cx, dx, bp, si, di, sp, 

其中 ax, bx, cx, dx, 的高8位又引用至 ah, bh, ch, dh,低八位引用至 al, bl, cl, dl

在 64-bit 模式下,有16個通用暫存器

,但是這16個暫存器是相容32位模式的,

32位方式下暫存器名分別為 eax, ebx, ecx, edx, edi, esi, ebp, esp, r8d – r15d.

在64位模式下,他們被擴充套件為 rax, rbx, rcx, rdx, rdi, rsi, rbp, rsp, r8 – r15.

其中 r8 – r15 這八個暫存器是64-bit模式下新加入的暫存器。

通用暫存器中的四個資料暫存器的理解:對於

esp, ebp兩個指標暫存器:

(1)esp:棧指標暫存器(extended stack pointer),其內存放著乙個指標,該指標永遠指向系統棧最上面乙個棧幀的棧頂。

(2)ebp:基址指標暫存器(extended base pointer),其內存放著乙個指標,該指標永遠指向系統棧最上面乙個棧幀的底部。

對應的低16位是sp,bp.

這兩個指標型通用暫存器,通過被分配為

「指標暫存器類別」

這兩個指標很重要,和整個底層指令的執行有關,是指令的調入入口。

esi, edi 兩個同用暫存器 「變址暫存器類」

esi, edi 兩個同用暫存器 有的時候被分配 「變址暫存器類別」

32位cpu有2個32位通用暫存器esi和edi,其低16位對應先前cpu中的si和di,對低16位資料的

訪問,不影響高16位的資料。

esi、edi、si和di稱為變址暫存器,它們主要用於存放儲存單元在段內的偏移量,用它們可實現多種儲存器

運算元的定址方式,為以不同的位址形式訪問儲存單元提供方便。

變址暫存器不可分割成8位暫存器,作為通用暫存器,也可儲存算術邏輯運算的運算元和運算結果。

它們可作一般的儲存器指標使用,在字串操作指令的執行過程中,對它們有特定的要求,而且還具有特殊的

功能。段暫存器 cs, ds, ss, es, fs, gs, 儲存16位的段選擇子,乙個段選擇子指定了乙個段在記憶體的指標,

以便在記憶體中訪問段,訪問方式與記憶體模式有關,段模式和平坦模式其代表的意義並不相同。

cs    **段暫存器

ds, es, fs, gs    資料段暫存器

ss    堆疊段暫存器

在 64-bit 模式下,這6個暫存器並無變化,只是使用上略有區別。

段暫存器是根據記憶體分段的管理模式而設定的。

記憶體單元的實體地址由段暫存器的值和乙個偏移量組合而成的

,這樣可用兩個較少位數的值組合成乙個可訪問較大物理空間的記憶體位址。

32位cpu有6個段暫存器,分別如下:

cs:**段暫存器    es:附加段暫存器

ds:資料段暫存器    fs:附加段暫存器

ss:堆疊段暫存器    gs:附件段暫存器

在16位cpu系統中,只有4個段暫存器,所以,程式在任何時刻至多有4個正在使用的段可直接訪問,在32位微機系統中,它有6個段暫存器,所以在此環境下開發的程式最多可同時訪問6個段。32位cpu有兩個不同的工作方式:實方式和保護方式。在每種方式下,段暫存器的作用是不同的,有關規定簡單描述如下:

保護方式:在此方式下,情況要複雜得多,裝入段暫存器的不再是段值,而是稱為「選擇子」的某個值。

1.運算結果標誌位。一共6個,包括:cf進製標誌位、pf奇偶標誌位、af輔助進製標誌位、zf零標誌位、

sf符號標誌位、of溢位標誌位。

2.狀態控制標誌位。一共3個,包括:tf追蹤標誌位、if中斷允許標誌位、df方向標誌位。

講講32位標誌暫存器增加的4個標誌位:

(1).i/o特權標誌iopl。

iopl用兩位二進位制位來表示,也稱為i/o特權級字段,該欄位指定了要求執行i/o指令的特權級,如果當前

的特權級別在數值上小於等於iopl的值,那麼,該i/o指令可執行,否則將發生乙個保護異常。

(2). 巢狀任務標誌nt。

nt用來控制中斷返回指令iret的執行。具體規定如下:

(1)     當nt=0,用堆疊中儲存的值恢復eflags、cs和eip,執行常規的中斷返回操作。

(2)     當nt=1,通過任務轉換實現中斷返回。

(3). 重啟動標誌rf。

rf用來控制是否接受除錯故障。規定:rf=0時,表示接受,否則拒絕。

(4). 虛擬8086方式標誌vm。

如果vm=1,表示處理機處於虛擬的8086方式下的工作狀態,否則,處理機處於一般保護方式下的工作狀態。

32位cpu把指令指標擴充套件到32位,並記作eip,eip的低16位與先前cpu中的ip作用相同。

指令指標eip、ip是存放下次將要執行的指令在**段的偏移位址,在具有預取指令功能的系統中,下次要執行的指令通常已被預取到指令佇列中,除非發生轉移情況,所以,在理解它們的功能時不考慮存在指令佇列的情況。

在實方式下,由於每個段的最大範圍為64kb,所以,eip的高16位肯定都為0,此時,相當於只用其低16位的ip來反映程式中的指令的執行次序。

注意:

ir與pc的區別,pc放置的是一系列指令的首位址,也就是指令指標。

ir的全稱應該是instructinon register:指令暫存器是用來存放指令的,存放當前正在執行的指令,包括指令的操作碼,位址碼,位址資訊

pc的全稱是program counter:程式計數器,是用來計數的,指示指令在儲存器的存放位置,也就是個位址資訊,在彙編中用暫存器ip表示pc。

cr0,cr2,cr3,cr4

idtr -- 中斷描述符表資訊

gdtr -- 全域性描述符表資訊

idtr -- 區域性描述符表資訊

儲存任務的狀態資訊 tss

dr0 – dr7,控制和允許監視程序的除錯操作

32位處理器內暫存器簡介

摘要 在32位cpu中,還有各種各樣的暫存器。一些暫存器是通用的,一些暫存器是專用的。一些指令如add loop,如果後面沒有完整的暫存器運算元,說明它們使用了隱含的運算元,這樣的話,我們需要對每個暫存器的常規用途比較了解。本文,主要是乙個彙總和淺要介紹,幫你理清32位暫存器的主要用途。32位cpu...

32位處理器的暫存器介紹

保護模式 基本模式,所有指令和特性都是可用的 系統管理模式 提供實現電源管理模式和系統安全等功能的機制 保護模式下,32位處理器可以定址最高4g空間。實位址模式能訪問1m的記憶體。虛擬模式執行的多個程式每個都能訪問1m的記憶體。32位cpu所含有的暫存器有 6個段暫存器 es cs ss ds fs...

64位處理器與32位處理器的區別

第二,要求配置不同。64位作業系統只能安裝在64位電腦上 cpu必須是64位的 同時需要安裝64位常用軟體以發揮64位 x64 的最佳效能。32位作業系統則可以安裝在32位 32位cpu 或64位 64位cpu 電腦上。當然,32位作業系統安裝在64位電腦上,其硬體恰似 大馬拉小車 64位效能就會大...