基本寄存器分為 4 類憨攒,
分別是 8 個通用寄存器、
4 個段寄存器(32位擴充2個)嗽测、
1個指令指針寄存器和1個標志寄存器.
AX(accumulator):累加寄存器莉炉,常用于運算;在乘除等指令中指定用來存放操作數庶骄,另外,所有的I/O指令都使用這一寄存器與外界設備傳送數據驻呐。
BX(base):基址寄存器灌诅,常用于地址索引
CX(count):計數寄存器,常用于計數含末;常用于保存計算值延塑,如在移位指令,循環(huán)(loop)和串處理指令中用作隱含的計數器.
DX(data):數據寄存器,常用于數據傳遞答渔。
SP(Stack Pointer):堆棧指針,與SS配合使用侥涵,可指向的堆棧位置
BP(Base Pointer):基址指針寄存器沼撕,可用作SS的一個相對基址位置
SI(Source Index):源變址寄存器宋雏,可用來存放相對于DS段之源變址指針
DI(Destination Index):目的變址寄存器,可用來存放相對于ES 段之目的變址指針务豺。
段寄存器:
CS(Code Segment):代碼段寄存器
DS(Data Segment):數據段寄存器
SS(Stack Segment):堆棧段寄存器
ES(Extra Segment):附加段寄存器
IP(Instruction Pointer):指令指針寄存器
16位的標志寄存器可以分為兩部分磨总,分別是條件標志和控制標志。
條件標志寄存器說明如下:
① OF(OverFlow Flag):溢出標志位笼沥,用來反映有符號數加減法運算所得結果是否溢出蚪燕。 如果運算超過當前運算位數所能表示的范圍,則稱為溢出奔浅,該標志位被置為1馆纳,否則為0。
② SF(Sign Flag):符號標志位汹桦,用來反映運算結果的符號位鲁驶。運算結果為負時為 1, 否則為0舞骆。
③ ZF(Zero Flag):零標志位钥弯,用來反映運算結果是否為0。運算結果為0時該標志位 被置為1督禽,否則為0脆霎。
④ AF(Auxiliary carry Flag):輔助進位標志位。在字操作時狈惫,發(fā)生低字節(jié)向高字節(jié)進位 或借位時該標志位被置為1睛蛛,否則為0(注意:在字節(jié)操作時,發(fā)生低4位向高4為進位或借位時該標志位被置為1虱岂,否則為0)玖院。
⑤ PF(Parity Flag):奇偶標志位,用于反映結果中“1”的個數的奇偶性第岖。如果“1” 的個數為偶數难菌,該標志位被置為1,否則為0蔑滓。
⑥ CF(Carry Flag):進位標志位郊酒。運算結果的最高位產生了一個進位或借位,則該標 志位被置為1键袱,否則為0燎窘。
控制標志寄存器說明如下:
① DF(Direction Flag):方向標志位,用于串操作指令中蹄咖,控制地址的變化方向褐健。當 DF為0時,存儲器地址自動增加;當DF為1時蚜迅,存儲器地址自動減少舵匾。操作DF標志寄存器可以使用指令CLD和STD進行復位和置位。
② IF(Interrupt Flag):中斷標志位谁不,用于控制外部可屏蔽中斷是否可以被處理器響應坐梯。 當IF為1時,允許中斷刹帕;當IF為0時吵血,則不允許中斷。操作IF標志寄存器可以使用CLI和STI進行復位和置位偷溺。
③ TF(Trap Flag):陷阱標志位蹋辅,用于控制處理器是否進入單步操作方式。當 TF 為 0 時亡蓉,處理器在正常模式下運行晕翠;當 TF 為 1 時,處理器單步執(zhí)行指令砍濒,調試器可以逐條指令進行執(zhí)行就是使用了該標志位淋肾。
附圖: