寄存器用途和英文全稱


寄存器用途和英文全稱

32位

寄存器類別和用途

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

EAX、AX、AH和AL

一些寄存器的組成部分可以處理 8 位的值。例如,AX 寄存器的高 8 位被稱為 AH,而低 8 位被稱為 AL。同樣的重疊關系也存在於 EAX、EBX、ECX 和 EDX 寄存器中:

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

通用寄存器有特殊用法:

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

指令指針

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

狀態標志位

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

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

通用寄存器:

英文 功能 寄存器 編號(二進制) 編號(十進制) 字母 全稱 功能
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

參考:

https://www.cnblogs.com/forestsky/p/10927470.html

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM