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
指令指針htm
指令指針(EIP)寄存器中包含下一條將要執行指令的地址。某些機器指令能控制 EIP,使得程序分支轉向到一個新位置。call和ret會改變其值。blog
狀態標誌位反映了 CPU 執行的算術和邏輯操做的結果。其中包括:溢出位、符號位、零標誌位、輔助進位標誌位、奇偶校驗位和進位標誌位。下述說明中,標誌位的縮寫緊跟在標誌位名稱以後:內存
通用寄存器: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
參考: