寄存器用途和英文全稱

寄存器用途和英文全稱

32位html

寄存器類別和用途

基本程序執行寄存器(basic program execution registers)。8 個通用寄存器,6 個段寄存器,一個處理器狀態標誌寄存器(EFLAGS),和一 個指令指針寄存器(EIP)。編程

EAX、AX、AH和AL函數

一些寄存器的組成部分能夠處理 8 位的值。例如,AX 寄存器的高 8 位被稱爲 AH,而低 8 位被稱爲 AL。一樣的重疊關係也存在於 EAX、EBX、ECX 和 EDX 寄存器中:.net

32 位 16 位 8 位(高) 8 位(低)
EAX AX AH AL
EBX BX BH BL
ECX CX CH CL
EDX DX DH DL

其餘通用寄存器只能用 32 位或 16 位名稱來訪問,以下表所示:指針

32 位 16 位 32 位 16 位
ESI SI EBP BP
EDI DI ESP SP

通用寄存器有特殊用法:rest

  • 乘除指令默認使用EAX。它經常被稱爲擴展累加器(extended accumulator)寄存器。
  • CPU 默認使用 ECX 爲循環計數器。
  • ESP 用於尋址堆棧數據。它極少用於通常算術運算和數據傳輸,一般被稱爲擴展堆棧指針(extended stack pointer)寄存器。
  • ESI 和 EDI 用於高速存儲器傳輸指令,有時也被稱爲擴展源變址(extended source index)寄存器和擴展目的變址(extended destination index)寄存器。
  • 高級語言經過 EBP 來引用堆棧中的函數參數和局部變量。除了高級編程,它不用於通常算術運算和數據傳輸。它經常被稱爲擴展幀指針(extended frame pointer)寄存器。

指令指針htm

指令指針(EIP)寄存器中包含下一條將要執行指令的地址。某些機器指令能控制 EIP,使得程序分支轉向到一個新位置。call和ret會改變其值。blog

狀態標誌位

狀態標誌位反映了 CPU 執行的算術和邏輯操做的結果。其中包括:溢出位、符號位、零標誌位、輔助進位標誌位、奇偶校驗位和進位標誌位。下述說明中,標誌位的縮寫緊跟在標誌位名稱以後:內存

  • 進位標誌位(CF),與目標位置相比,無符號算術運算結果太大時,設置該標誌位。
  • 溢出標誌位(OF),與目標位置相比,有符號算術運算結果太大或過小時,設置該標誌位。
  • 符號標誌位(SF),算術或邏輯操做產生負結果時,設置該標誌位。
  • 零標誌位(ZF),算術或邏輯操做產生的結果爲零時,設置該標誌位。
  • 輔助進位標誌位(AC),算術操做在 8 位操做數中產生了位 3 向位 4 的進位時,設置該標誌位。
  • 奇偶校驗標誌位(PF),結果的最低有效字節包含偶數個 1 時,設置該標誌位,不然,清除該標誌位。通常狀況下,若是數據有可能被修改或損壞時,該標誌位用於進行 錯誤檢測。

通用寄存器:get

英文 功能 寄存器 編號(二進制) 編號(十進制) 字母 全稱 功能
32位 16位 8位 D double
accumulator 累加 EAX AX AL 000 0 L low 低位
count 計數 ECX CX CL 001 1 H high 高位
data 數據 EDX DX DL 010 2 E extend 擴展
base 基址 EBX BX BL 011 3 R register 寄存器
Stack Pointer 堆棧指針 ESP SP AH 100 4 I immediate 當即數
Base Pointer 基址指針 EBP BP CH 101 5 M memory 內存
Source Index 源變址 ESI SI DH 110 6 B byte 字節
Destination Index 目的變址 EDI DI BH 111 7 W word

標誌寄存器(FLAG/16位):

英文 功能 全稱 標誌形式
OF 溢出標誌 overflow flag 狀態標誌
SF 符號標誌 sign  flag 狀態標誌
ZF 零標誌 zero  flag 狀態標誌
CF 進位標誌 carry  flag 狀態標誌
AF 輔助進位標誌 auxiliary carry flag 狀態標誌
PF 奇偶標誌 parity flag 狀態標誌
DF 方向標誌 direction flag 控制標誌
IF 中斷標誌 interrupt flag 控制標誌
TF 陷進標誌 trap     flag 控制標誌

段寄存器(16位):

英文 含義 全稱 功能
CS 代碼段 Code Segment 指明代碼段的起始地址
DS 數據段 Data Segment 指明數據段的起始地址
SS 堆棧段 Stack Segment 指明堆棧段的起始地址
ES 附加段 Extra Segment 指明附加段的起始地址

指令指針寄存器(32位)EIP:Extend Instruction Pointer

參考:

http://www.javashuo.com/article/p-npmwcjrp-cq.html

http://c.biancheng.net/view/3458.html

相關文章
相關標籤/搜索