1. 通用寄存器
| 數據寄存器 | 用處 |
|---|---|
| AX(accumulator) | 作為 累加器 用,它是算數運算的主要寄存器。另外,所有的I/O指令都使用這一寄存器與外部設備傳送信息 |
| BX(base) | 計算機存儲器地址時,經常作為寄存器 |
| CX(count) | 在位移、循環和串處理指令中常用來做保存計數值 |
| DX(data) | 一般在做雙字長運算時把DX和AX組合在一起存放一個雙字長數,DX用來存放高位;對某些I/O操作,DX可用來存放I/O的端口地址 |
| 指針寄存器 | 用處 |
|---|---|
| SP(stack pointer)、ESP | 堆棧指針寄存器,其中存放當前堆棧段棧頂的偏移量,他們總是與SS堆棧段寄存器配合存取堆棧中的數據。實模式下使用SP,在80386以上的保護模式下使用ESP |
| BP(base pointer)、EPB | 基址指針寄存器。它可以與堆棧段寄存器SS聯用來確定堆棧段中的嗎某一存儲單元的地址。並可以作堆棧區中的一個基地址以便訪問堆棧中的信息。 |
| 變址寄存器 | 作用 |
|---|---|
| SI(source index) 源變址寄存器 DI(destination index) 目的變址寄存器 | 一般與數據段寄存器DS聯用,用來確定數據段中某一存儲單元的地址。這兩個變址寄存器有自動增量和自動減量的功能。 |
SP、ESP堆棧指針不能隨意修改
2. 控制寄存器
指令指針寄存器
IP、EIP叫做指令指針寄存器,它總是與CS段寄存器配合指出下一條要執行指令的地址,其中存放偏移量部分。計算機用指令指針寄存器來控制指令序列的執行流程。
標志寄存器
| 運算結果特征標志 | 用處 |
|---|---|
| CF(Carry Flag) | 進位標志,記錄運算結果的最高位向前產生的進位或借位。可用於檢測無符號數二進制加減法運算時是否發生溢出(溢出時 CF=1) |
| PF(Parity Flag) | 奇偶標志,記錄運算結果最低位中含1的個數是奇還是偶。可用於檢測數據傳送過程中是否發生錯誤。 |
| AF(Auxiliary carry) | 輔助進位標志,記錄運算結果低4位向前產生的進位或借位。只有在執行十進制運算指令時才關心此位。 |
| ZF(Zero Flag) | 零標志,記錄運算結果是否位0。結果為0則置1,否則清0 |
| OF(Overflow Flag) | 溢出標志,記錄運算結果是否超出了機器所能表示的范圍。可用於檢測帶符號數運算時是否發生溢出(溢出時OF=1) |
| SF(Sign Flag) | 符號標志,記錄運算結果的符號。結果為負則置1,否則清0 |
| 控制標志(處理器) | 用處 |
|---|---|
| IF(Interrupt Flag) | 中斷允許標志,IF的控制只對外部可屏蔽中斷請求(INTR)起作用。當IF=1時允許CPU響應INTR。 |
| DF(Direction Flag) | 方向標志。專服務於字符串操作指令,當DF位為1時,每次操作后使變址寄存器SI和DI減小,這樣就使串處理從高地址向低地址方向處理。當DF位為0時,則使SI和DI增大。 |
| TF(Trap Flag) | 陷阱標志,用於程序調試。當TF=1 時,CPU處於單步方式;當TF=0時,CPU處於連續方式。 |
| IOPL(I/O Privilege Level) | 特權標志,占D13和D12兩位。在保護模式下,用於控制對I/O地址空間的訪問。只對80286以上CPU有效。 |
| ID(Identification) | 標識標志,若ID=1,則表示Pentium支持CPUID指令。只對Pentium以上CPU有效。 |

3.段寄存器
IBM PC機的存儲器采用分段管理方法組織,因此一個物理地址用段基址和偏移量 表示。
段寄存器存放段基址。在實模式下存放當前正在運行程序的段基地址,在保護模式下存放段選擇子。

| 段寄存器 | 用處 |
|---|---|
| CS(code segment) | 代碼段寄存器,指定當前代碼段,代碼段中存放當前正在運行的程序段。 |
| SS(stack segment) | 指定當前堆棧段。 |
| DS(data segment) | 數據段寄存器,指定當前運行程序所使用的數據段。 |
| ES(extra segment) | 附加數據段寄存器,指定當前運行程序所使用的附加數據段 |
DS是主要的數據段寄存器,在默認情況下使用DS所指向段的數據。若要引用其它段中的數據,需要顯式說明。

