歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

x86寄存器詳解

AX 累加器 AL 底8位累加器 AH 高8位累加器 EAX 32位累加器
BX 基址寄存器 BL 底8位基址寄存器 BH 高8位基址寄存器 EXB 32位基址寄存器
CX 計數器 CL第8位計數器 CH 高8位計數器 ECX 32位計數器
DX 數據寄存器 DL 第8位數據寄存器 DH 高8位數據寄存器 EDX 32位數據寄存器
CS: 代碼段寄存器
DS: 數據段寄存器
SS: 堆棧段寄存器
ES: 附加段寄存器
SI: 源變址寄存器
DI: 目的變址寄存器
BP: 基址指針寄存器
SP: 堆棧指針寄存器
IP: 指令指針寄存器
FR: 標志指針寄存器

 


1、通用寄存器


數據寄存器包括AX,BX,CX,DX四個通用寄存器,他們可以以字16位的形式使用,也可以以字節8位的形式使用。
以字形式使用時四個通用寄存器稱為AX,BX,CX,DX,以字節形式使用,高八位通用寄存器稱AH,BH,CH,DH。低八位稱AL,BL,CL,DL。


這四個都是通用寄存器,又可用於專用的目的。
AX做累加器用
BX在計算存儲器地址時,經常用做基地址寄存器,所以又稱基址寄存器。(BASE)
CX(COUNT)可用做通用寄存器。此外,在循環( LOOP)和串處理指令中用做隱含的計數器。
DX(DATA)在做雙字長的運算時,把DX和AX組合在一起存放I/O端口地址。


2、指針及變址寄存器


他們包括SP,BP,SI,DI四個16位寄存器。他們可以象數據寄存器一樣在運算過程中存放操作數,但他們只能以字16位為單位使用。


SP(STACK POINTER)堆棧指針寄存器。用來指示堆棧的棧頂的偏移地址,與SS堆棧段寄存器形成棧頂存儲單元的物理地址。
BP(BASE POINTER)基址指針寄存器。 用來指示堆棧中某個數據區的偏移地址-----基地址。
SI(SOURCE INDEX)源變址寄存器;
DI(DESTINATION INDEX)目的變址寄存器;


3、段寄存器


包括CS,DS,SS,ES四個16位段寄存器


CS(CODE SEGMENT)代碼段寄存器
SS(STACK SEGMENT)堆棧段寄存器
DS(DATA SEGMENT)數據段寄存器
ES(EXTRA SEGMENT)附加段寄存器


8086/8088采用存儲空間的分段技術來解決尋址1M字節的存儲空間。這些段寄存器的內容和有效的地址偏移量(稱偏移地址)一起可確定內存的存儲單元的物理地址。CS控制程序區DS和ES控制數據區,SS控制堆棧區。


4、控制寄存器


兩個16位的寄存器IP和PSW。


IP(INSTRUCTION POINTER)指令指針寄存器;他用來存放代碼段中的偏移地址。程序運行中始終指向下一條指令的首地址。計算機就是用IP寄存器來控制指令序列的執行流程的


PSW(PROGRAM STATUS WORD)程序狀態字寄存器或稱標志寄存器; 由狀態碼標志和控制標志構成,


OF溢出標志;運算結果超出機器能表示的數值范圍稱溢出OF=1,否則OF=0;


SF符號標志;運算結果的符號為負時置1否則置0


ZF;零標志


CF進位標志


AF輔助進位標志


PF奇偶標志


DF方向標志


DF=1每次操作後使SI和DI減量,使串處理指令向低地址方向進行


IF中斷標志


TF跟蹤標志


控制標志是由系統程序或用戶程序根據需要用指令來設置的。

Copyright © Linux教程網 All Rights Reserved