ICS汇编学习笔记——8086中的寄存器
程序執行兩大部件:總線接口單元(BIU) 執行單元(EU)
指令和數據都在內存中
BIU與EU是并行執行的
BIU負責取指令和存取操作數
EU負責譯碼和指令的執行
8086的8個16位通用寄存器
AX, BX, CX, DX
SI, DI, BP, SP
4個數據寄存器
AX——累加器,使用頻度最高,用于算術、邏輯運算以及與外設傳送信息等;
BX——基址寄存器,常用做存放存儲器地址;數組首地址。
CX——計數器,作為循環和串操作等指令中的隱含計數器;
DX——數據寄存器,常用來存放雙字長數據的高16位,或存放外設端口地址。
2個變址寄存器
SI是源變址寄存器
DI是目的變址寄存器
串操作類指令中,SI和DI具有特別的功能
2個指針寄存器
SP為堆棧指針寄存器,指示棧頂的偏移地址
SP不能再用于其他目的,具有專用目的
BP為基址指針寄存器,表示數據在堆棧段中的基地址
SP和BP寄存器與SS段寄存器聯合使用以確定堆棧段中的存儲單元地址
指令指針IP
指令指針寄存器IP,指示代碼段中指令的偏移地址(相當于程序計數器PC)
它與代碼段寄存器CS聯用,確定下一條指令的物理地址
計算機通過CS : IP寄存器來控制指令序列的執行流程
IP寄存器是一個專用寄存器(區別于通用寄存器)
EIP始終存放下一條要被CPU執行的指令的地址。
有些機器指令可以修改EIP,使程序分支轉移到新的地址執行。例如:JMP, RET
標志寄存器
進位標志CF(Carry Flag): 當運算結果的最高有效位有進位(加法)或借位(減法)時,進位標志置1,即CF = 1;否則CF = 0。
零標志ZF(Zero Flag): 若運算結果為0,則ZF = 1;否則ZF = 0
符號標志SF(Sign Flag):運算結果最高位為1,則SF = 1;否則SF = 0
奇偶標志PF(Parity Flag):當運算結果最低字節中"1"的個數為零或偶數時,PF = 1;否則PF = 0
溢出標志OF(Overflow Flag):若算術運算的結果有溢出,則OF=1;否則 OF=0
注:"溢出標志"在有符號運算中有意義,"進位"在無符號運算中有意義
輔助進位標志AF(Auxiliary Carry Flag):運算時D3位(低半字節)有進位或借位時,AF = 1;否則AF = 0。用戶一般不必關心。
方向標志DF(Direction Flag):用于串操作指令中,控制地址的變化方向:設置DF=0,存儲器地址自動增加;設置DF=1,存儲器地址自動減少。(CLD指令復位方向標志:DF=0;STD指令置位方向標志:DF=1)
中斷允許標志IF(Interrupt-enable Flag):用于控制外部可屏蔽中斷是否可以被處理器響應:設置IF=1,則允許中斷;設置IF=0,則禁止中斷。(CLI指令復位中斷標志:IF=0;STI指令置位中斷標志:IF=1)
陷阱標志TF(Trap Flag):用于控制處理器進入單步操作方式:設置TF=0,處理器正常工作;設置TF=1,處理器單步執行指令。
4個段寄存器
CS(代碼段)指明代碼段的起始地址
SS(堆棧段)指明堆棧段的起始地址
DS(數據段)指明數據段的起始地址
ES(附加段)指明附加段的起始地址
總結
以上是生活随笔為你收集整理的ICS汇编学习笔记——8086中的寄存器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国密算法SM3(杂凑算法)
- 下一篇: ICS汇编学习笔记——8086的指令系统